常用的统计计算
Pandas提供了很多跟数学和统计相关的方法,其中大部分都属于汇总统计,用来从Series中获取某个值(如max或min),或者从DataFrame的列中提取一列数据(如sum)。
Pandas为我们提供了非常多的描述性统计分析的指标方法,比如总和、均值、最小值、最大值等。接下来,通过一张表来罗列常用的描述性统计方法,以及它们的具体说明,如表1所示。
表1 常用描述性统计方法及说明
函数名称 | 说明 |
---|---|
sum | 计算和 |
mean | 计算平均值 |
median | 获取中位数 |
max、min | 获取最大值和最小值 |
idxmax、idxmin | 获取最大和最小索引值 |
count | 计算非NaN值的个数 |
head | 获取前N个值 |
var | 样本值的方差 |
std | 样本值的标准差 |
skew | 样本值的偏度(三阶矩) |
kurt | 样本值的峰度(四阶矩) |
cumsum | 样本值的累积和 |
cummin、cummax | 样本值的累积最小值和累积最大值 |
cumprod | 样本值的累计积 |
describe | 对Series和DataFrame列计算汇总统计 |
下面通过一些示例来演示上述部分方法的使用。例如,创建一个3行4列的DataFrame对象,它的列索引为“a、b、c、d”,具体代码如下。
In [59]: df_obj = pd.DataFrame(np.arange(12).reshape(3, 4),columns=['a', 'b', 'c', 'd'])
df_obj
Out[59]:
a b c d
0 0 1 2 3
1 4 5 6 7
2 8 9 10 11
然后,让DataFrame对象依次调用sum()、max()和min()方法,分别执行求和、求最大值和最小值的运算,具体代码如下。
In [60]: df_obj.sum() # 计算每列的和
Out[60]:
a 12
b 15
c 18
d 21
dtype: int64
In [61]: df_obj.max() # 获取每列的最大值
Out[61]:
a 8
b 9
c 10
d 11
dtype: int32
In [62]: df_obj.min(axis=1) # 沿着横向轴,获取每行的最小值
Out[62]:
0 0
1 4
2 8
dtype: int32
通过结果可以看出,DataFrame默认优先以纵向轴进行计算,除非在调用这些统计方法时,显式地指明沿着横向轴方向,即axis=1,才会对每行的数据进行计算。