Pandas统计分析
pandas数据的基本统计分析
和numpy的函数近似
dates = pd.date_range('20130101',periods=10) dates df = pd.DataFrame(np.random.randn(10,4),index=dates,columns=['A','B','C','D']) df df.describe() #快速统计结果 df.mean() # 按列求平均值 df.mean(1) # 按行求平均值
基本统计分析函数
.describe()
针对0轴(列)的统计汇总,计数/平均值/标准差/最小值/四分位数/最大值.sum()
计算数据的总和,按0轴计算(各行计算),下同,要按列计算参数1.count()
非NaN值数量.mean() .median() .mode()
计算数据的算数平均值/算数中位数/众数.var() .std()
计算数据的方差/标准差.min() .max()
计算数据的最小值/最大值
只适用于series:
.argmin(),.argmax()
计算数据最大值/最小值所在位置的索引位置(自动索引,用她是因为很容易切片等操作).idxmin(),.idxmax()
计算数据最大值/最小值所在位置的索引(自定义索引)
a = pd.Series([9,8,7,6],index=['a','b','c','d']) a b = pd.DataFrame(np.arange(20).reshape(4,5),index=['c','a','d','b']) b a.describe() type(a.describe()) #series对象 a.describe()['count'] b.describe() #默认0轴运算 type(b.describe()) #dataframe对象 #返回横行数据,series b.describe().loc['max'] b.describe().iloc[7] #返回一列值,这里第2列 b.describe()[2] #b.describe()[2] b.describe().loc[:,2]
数据的累计统计分析
- 对序列的前1-n个数累计运算
- 可减少for循环的使用
累计统计分析函数,适用于series和dataframe类型
.cumsum()
依次给出前1/2/.../n个数的和.cumprod()
依次给出前1/2/.../n个数的积.cummax()
依次给出前1/2/.../n个数的最大值.cummin()
依次给出前1/2/.../n个数的最小值
b = pd.DataFrame(np.arange(20).reshape(4,5),index=['c','a','d','b']) b b.cumsum() #列的累加和 b.cumprod() #列的累加积
滚动计算(窗口计算)函数
适用series/dataframe
.rolling(w).sum()
依次计算相邻w个元素的和.rolling(w).mean()
依次计算相邻w个元素的算数平均值.rolling(w).var()
依次计算相邻w个元素的方差.rolling(w).std()
依次计算相邻w个元素的标准差.rolling(w).min .max()
依次计算相邻w个元素的最小值/最大值
b.rolling(2).sum() #纵向列,以两个元素为单位,做求和运算 b.rolling(3).sum()