Pandas统计分析
pandas数据的基本统计分析
和numpy的函数近似
dates = pd.date_range('',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()