在Pandas中,DataFrame提供了丰富的数据统计函数。以下是主要的统计函数分类和说明:
一、基本描述性统计
1. 核心描述统计函数
df.describe() # 数值列的快速统计摘要
df.describe(include='all') # 包含所有类型列的统计
df.describe(include=[np.number]) # 只包含数值列
df.describe(include=['O']) # 只包含对象类型(字符串)列
df.mean() # 平均值
df.median() # 中位数
df.mode() # 众数
df.std() # 标准差
df.var() # 方差
df.min() # 最小值
df.max() # 最大值
df.sum() # 求和
df.count() # 非空值计数
2. 分位数统计
df.quantile(0.25) # 25%分位数
df.quantile(0.5) # 50%分位数(中位数)
df.quantile(0.75) # 75%分位数
df.quantile([0.1, 0.5, 0.9]) # 多个分位数
二、分布形状统计
df.skew() # 偏度(衡量分布不对称性)
df.kurtosis() # 峰度(衡量分布尖峰程度)
df.kurt() # 峰度的别名
三、累积统计
df.cumsum() # 累积和
df.cumprod() # 累积乘积
df.cummax() # 累积最大值
df.cummin() # 累积最小值
四、百分比变化和差异
df.pct_change() # 百分比变化
df.diff() # 一阶差分
五、相关性和协方差
df.corr() # 相关系数矩阵
df.corrwith(df2) # 与另一个DataFrame的相关性
df.cov() # 协方差矩阵
六、唯一值和频次统计
df.nunique() # 每列的唯一值数量
df.value_counts() # 值的频次统计(适用于Series)
df.unique() # 唯一值数组(适用于Series)
七、排名统计
df.rank() # 排名
df.rank(method='min') # 最小排名
df.rank(method='dense') # 密集排名
df.rank(ascending=False) # 降序排名
八、自定义聚合统计
# 使用agg进行多函数聚合
df.agg(['mean', 'sum', 'std'])
df.agg({'col1': 'mean', 'col2': ['sum', 'std']})
# 自定义函数
df.agg(lambda x: x.max() - x.min()) # 极差
九、分组统计
df.groupby('group_col').mean() # 按组求平均
df.groupby('group_col').sum() # 按组求和
df.groupby('group_col').agg({'col1': 'mean', 'col2': 'sum'})
df.groupby('group_col').describe() # 按组的描述统计
十、滚动窗口统计
df.rolling(window=3).mean() # 滚动平均
df.rolling(window=5).sum() # 滚动求和
df.rolling(window=3).std() # 滚动标准差
df.expanding().mean() # 扩展窗口平均
十一、其他实用统计
df.idxmax() # 最大值的索引位置
df.idxmin() # 最小值的索引位置
df.mad() # 平均绝对偏差
df.sem() # 标准误差
df.prod() # 乘积
使用示例
import pandas as pd
import numpy as np
# 创建示例DataFrame
df = pd.DataFrame({
'A': np.random.randn(100),
'B': np.random.randint(1, 10, 100),
'C': np.random.choice(['X', 'Y', 'Z'], 100)
})
# 基本统计
print("描述统计:")
print(df.describe())
print("\n相关系数矩阵:")
print(df[['A', 'B']].corr())
print("\n每列唯一值数量:")
print(df.nunique())
# 分组统计
print("\n按C列分组的统计:")
print(df.groupby('C').agg({
'A': ['mean', 'std', 'count'],
'B': ['sum', 'mean']
}))
这些函数涵盖了数据分析和统计建模中大多数常见的统计需求,可以根据具体分析场景选择合适的函数。

1021

被折叠的 条评论
为什么被折叠?



