目录
常用聚合函数
pandas%E4%B8%AD%E8%81%9A%E5%90%88%E5%87%BD%E6%95%B0%E7%9A%84%E5%A4%84%E7%90%86%E6%96%B9%E5%BC%8F-toc" style="margin-left:40px;">pandas中聚合函数的处理方式
Series对象使用聚合函数
DataFrame对象使用聚合函数
Pandas中聚合函数对空值的处理,及与numpy ndarray进行对比
常用聚合函数
Function | Description | 备注 |
---|---|---|
count | Number of non-NA observations | 个数 |
sum | Sum of values | 求和 |
mean | Mean of values | 均值 |
mad | Mean absolute deviation | 绝对值均值 |
median | Arithmetic median of values | 中位数 |
min | Minimum | 最小值 |
max | Maximum | 最大值 |
mode | Mode | 众数 |
abs | Absolute Value | 绝对值 |
prod | Product of values | 乘积 |
std | Bessel-corrected sample standard deviation | 标准差 |
var | Unbiased variance | 方差 |
quantile | Sample quantile (value at %) | 分位数 |
cumsum | Cumulative sum | 累和 |
cumprod | Cumulative product | 累积 |
pandas%E4%B8%AD%E8%81%9A%E5%90%88%E5%87%BD%E6%95%B0%E7%9A%84%E5%A4%84%E7%90%86%E6%96%B9%E5%BC%8F">pandas中聚合函数的处理方式
Series对象使用聚合函数
由于Series对象为一维数据,所以在使用聚合函数的时候不需要考虑聚合函数应用的维度,比如在sum()函数的应用如下
python">import numpy as np
import pandas as pdnp.random.seed(0)data1 = pd.Series(data = [1,2,3], index = ['a', 'b', 'c'])
print(data1)
print(data1.sum())
# a 1
# b 2
# c 3
# dtype: int64
# 6
可以看到这里的聚合函数sum()的应用范围为整个Series中的所有元素
DataFrame对象使用聚合函数
DataFrame中使用聚合函数的话会默认应用于每一列的数据,也就是针对列数据进行聚合操作,如果需要对整个二维表进行聚合,则需要调用两次聚合函数,并且聚合函数也可以根据指定axis参数来设置是在列维度上进行聚合还是在行维度进行聚合
python">import numpy as np
import pandas as pdnp.random.seed(0)data = pd.DataFrame(np.random.randint(0,10,(3,4)),index=list('abc'),columns=list('ABCD'))
print(data)
print(data.sum())
print(data.sum(axis = 1))
print(data.sum().sum())# A B C D
# a 5 0 3 3
# b 7 9 3 5
# c 2 4 7 6
# A 14
# B 13
# C 13
# D 14
# dtype: int64
# a 11
# b 24
# c 19
# dtype: int64
# 54
可以看到默认进行列数据的聚合,也就是沿行方向,axis默认为0
Pandas中聚合函数对空值的处理,及与numpy ndarray进行对比
pandas在聚合函数中如果遇到元素为空值则会自动忽略,但是在ndarray中,任何数值与空值进行运算,结果都为空值
python">import numpy as np
import pandas as pdnp.random.seed(0)data = pd.DataFrame(np.random.randint(0,10,(3,4)),index=list('abc'),columns=list('ABCD'))
data.iloc[1,1] = np.nan
print(data)
print(data.sum())
print(data.sum(axis = 1))
print(data.sum().sum())print(data.values.sum())# A B C D
# a 5 0.0 3 3
# b 7 NaN 3 5
# c 2 4.0 7 6
# A 14.0
# B 4.0
# C 13.0
# D 14.0
# dtype: float64
# a 11.0
# b 15.0
# c 19.0
# dtype: float64
# 45.0
# nan
可以看到在最后使用data.values()取出ndarray形式的数据后,再进行sum()聚合运算后,由于[1,1]位置的空值,得到的结果也为空值