方法 | 说明 |
---|---|
count | 非NaN值的数量 |
describe | 描述统计 |
min, max | 最值 |
idxmin, idxmax | 最值所在位置(loc) |
quantile | 分位数 |
sum | |
mean | |
median | 中位数 |
mad | 平均绝对离差 |
var | |
std | |
skew | 偏度(三阶矩) |
kurt | 峰度(四阶距) |
cumsum | |
cumprod | |
cummin, cummax | 累计最值 |
diff | |
pct_change | 变化率(与上一列相比) |
corr | 相关系数矩阵df.corr(),se1.corr(se2),df.corr(se1) |
描述统计
df.describe()
df.describe(include='all') # 对分类变量计算unique个数等,对字符串也有处理。
返回的是DataFrame格式的描述性统计数据
data.info() # DataFrame的简要情况
df.shape
运算函数
汇总
max, min, min, std, sum
能返回每一列统计量
- axis,指定运算轴
- level, 如果是MultiIndex, 指定对应的索引
- skipna,运算是否跳过NaN
最值所在位置
import pandas as pd
import numpy as np
df=pd.DataFrame(np.random.rand(16).reshape(-1,4),columns=list('wxyz'))
df.idxmax()
计算
add, sub,mul,div,mod
可以通过axis,level,fill_value等参数控制其运算行为。
统计
cut
数据准备
import pandas as pd
import numpy as np
df=pd.DataFrame(np.arange(16).reshape(-1,2),columns=list('wx'))
df
传入bins
- cut
bins=[-np.inf,4,10,np.inf] pd.cut(df.w,bins)
0 (-inf, 4.0]
1 (-inf, 4.0]
2 (-inf, 4.0]
3 (4.0, 10.0]
4 (4.0, 10.0]
5 (4.0, 10.0]
6 (10.0, inf]
7 (10.0, inf]
Name: w, dtype: category
Categories (3, interval[float64]): [(-inf, 4.0] < (4.0, 10.0] < (10.0, inf]] - right=False: 选择右开还是闭,默认闭
- labels=[‘low’,’mid’,’hig’]: 给每个标签命名
bins=[-np.inf,4,10,np.inf] pd.cut(df.w,bins,right=False,labels=['low','mid','hig'])
0 low
1 low
2 mid
3 mid
4 mid
5 hig
6 hig
7 hig
Name: w, dtype: category
Categories (3, object): [low < mid < hig] - 传入数字:按照区间等分n份
pd.cut(df.w,4,precision=1)
qcut
- 传入区间:按照分位点切分
from scipy.stats import norm df=pd.DataFrame(norm().rvs(size=(100)),columns=list('w')) pd.qcut(df.w,[-1,0.1,0.5,0.8,0.9,1]).value_counts()
- 传入数字:按样本数切分,每组样本数相同
pd.qcut(df.w,4)
count
df.count()
返回每列的非NaN的个数
value_counts
value_counts只能针对Series
df.loc[:,'x'].value_counts()