Pandas统计计算和描述

示例代码:

import numpy as np
import pandas as pd

df_obj = pd.DataFrame(np.random.randn(5,4), columns = ['a', 'b', 'c', 'd'])
print(df_obj)

运行结果:

          a         b         c         d
0  1.469682  1.948965  1.373124 -0.564129
1 -1.466670 -0.494591  0.467787 -2.007771
2  1.368750  0.532142  0.487862 -1.130825
3 -0.758540 -0.479684  1.239135  1.073077
4 -0.007470  0.997034  2.669219  0.742070

常用的统计计算

sum, mean, max, min…

axis=0 按列统计,axis=1按行统计

skipna 排除缺失值, 默认为True

示例代码:

df_obj.sum()

df_obj.max()

df_obj.min(axis=1, skipna=False)

运行结果:

a    0.605751
b    2.503866
c    6.237127
d   -1.887578
dtype: float64

a    1.469682
b    1.948965
c    2.669219
d    1.073077
dtype: float64

0   -0.564129
1   -2.007771
2   -1.130825
3   -0.758540
4   -0.007470
dtype: float64

常用的统计描述

describe 产生多个统计数据

示例代码:

print(df_obj.describe())

运行结果:

              a         b         c         d
count  5.000000  5.000000  5.000000  5.000000
mean   0.180305  0.106488  0.244978  0.178046
std    0.641945  0.454340  1.064356  1.144416
min   -0.677175 -0.490278 -1.164928 -1.574556
25%   -0.064069 -0.182920 -0.464013 -0.089962
50%    0.231722  0.127846  0.355859  0.190482
75%    0.318854  0.463377  1.169750  0.983663
max    1.092195  0.614413  1.328220  1.380601

常用的统计描述方法:

  • count 非NA值的数量
  • describe 针对Series或各DataFrame列计算汇总统计
  • min、max 最大最小值
  • argmin、argmax 最小/最大值 索引位置
  • idxmin、idxmax 最小/最大值的索引值
  • quantile 计算样本的分位数(0到1)
  • sum 总和
  • mean 平均数
  • median 中位数(50%分位数)
  • mad 根据平均值计算平均绝对离差
  • var 样本值的方差
  • std 样本值的标准差
  • skew 样本值的偏度(三阶矩)
  • kurt 样本值的峰度(四阶矩)
  • cumsum 样本值的累计和
  • cummin、cummax 样本值的累计最大值和累计最小值
  • cumprod 样本值的累计积
  • diff 计算一阶差分(对时间序列很有用)
  • pct_change 计算百分数变化