pandas对象拥有一组常用的数学和统计方法。它们大部分都属于约简和汇总统计,用于从Series中提取单个值(如sum或mean)或从DataFrame的行或列中提取一个Series。跟对应的NumPy数组方法相比,它们都是基于没有缺失数据的假设而构建的。
Pandas为我们提供了非常多的描述性统计分析的指标方法,比如总和、均值、最小值、最大值等。
统计方法
方法名 | 功能 |
---|---|
sum | 计算和 |
mean | 计算平均值 |
median | 获取中位数 |
max、min | 获取最大值和最小值 |
idxmax、idxmin | 获取最大和最小索引值 |
count | 计算非NaN值的个数 |
head | 获取前N个值 |
var | 样本值的方差 |
std | 样本值的标准差 |
skew | 样本值的偏度(三阶矩) |
kurt | 样本值的峰度(四阶矩) |
cumsum | 样本值的累计和 |
cummin、cummax | 样本值的累积最小值和累积最大值 |
cumpord | 样本值的累计积。 |
describe | 对Series和DataFrame列计算汇总统计 |
常用的统计计算
统计描述
如果希望一次性输出多个统计指标,则我们可以调用descript()方法实现,语法格式如下:
describe(percentiles=None, include=None, exclude=None)
df_obj = pd.DataFrame(np.arange(12).reshape(3,4),columns=['a','b','c','d'])
print(df_obj)
'''
a b c d
0 0 1 2 3
1 4 5 6 7
2 8 9 10 11
'''
print(df_obj.sum()) # 计算和
'''
a 12
b 15
c 18
d 21
dtype: int64
'''
print(df_obj.mean()) # 计算平均值
'''
a 4.0
b 5.0
c 6.0
d 7.0
dtype: float64
'''
print(df_obj.median()) # 获取中位数
'''
a 4.0
b 5.0
c 6.0
d 7.0
dtype: float64
'''
# 获取最大值和最小值
print(df_obj.max())
'''
a 8
b 9
c 10
d 11
dtype: int32
'''
print(df_obj.min())
'''
a 0
b 1
c 2
d 3
dtype: int32
'''
# 获取最大和最小索引数
print(df_obj.idxmax())
'''
a 2
b 2
c 2
d 2
dtype: int64
'''
print(df_obj.idxmin())
'''
a 0
b 0
c 0
d 0
dtype: int64
'''
print(df_obj.count()) # 计算非NaN值的个数
'''
a 3
b 3
c 3
d 3
dtype: int64
'''
print(df_obj.head()) # 获取前N个值
'''
a b c d
0 0 1 2 3
1 4 5 6 7
2 8 9 10 11
'''
print(df_obj.var()) # 样本值的方差
'''
a 16.0
b 16.0
c 16.0
d 16.0
dtype: float64
'''
print(df_obj.std()) # 样本值的标准差
'''
a 4.0
b 4.0
c 4.0
d 4.0
dtype: float64
'''
print(df_obj.skew()) # 样本值的偏度(三阶矩)
'''
a 0.0
b 0.0
c 0.0
d 0.0
dtype: float64
'''
print(df_obj.kurt()) # 样本值的偏度(四阶矩)
'''
a NaN
b NaN
c NaN
d NaN
dtype: float64
'''
print(df_obj.cumsum()) # 样本值的累计和
'''
a b c d
0 0 1 2 3
1 4 6 8 10
2 12 15 18 21
'''
# 样本值的累计最小值和累计最大值
print(df_obj.cummin())
'''
a b c d
0 0 1 2 3
1 0 1 2 3
2 0 1 2 3
'''
print(df_obj.cummax())
'''
a b c d
0 0 1 2 3
1 4 5 6 7
2 8 9 10 11
'''
print(df_obj.cumprod()) # 样本值的累计积
'''
a b c d
0 0 1 2 3
1 0 5 12 21
2 0 45 120 231
'''
print(df_obj.describe()) # 对Series和DataFrame列计算汇总统计
'''
a b c d
count 3.0 3.0 3.0 3.0
mean 4.0 5.0 6.0 7.0
std 4.0 4.0 4.0 4.0
min 0.0 1.0 2.0 3.0
25% 2.0 3.0 4.0 5.0
50% 4.0 5.0 6.0 7.0
75% 6.0 7.0 8.0 9.0
max 8.0 9.0 10.0 11.0
'''