Pandas的groupby
函数是数据分析和处理中的重要工具,允许按照指定的列对数据进行分组,并在每个组内执行相应的操作。本文将详细介绍groupby
函数的使用方法,并提供丰富的示例代码,覆盖从基础用法到高级操作的多个方面。
1. 基础用法
1.1 分组并计算统计量
import pandas as pd
# 创建示例DataFrame
data = {'Category': ['A', 'B', 'A', 'B', 'A', 'B'],
'Value': [10, 20, 15, 25, 18, 30]}
df = pd.DataFrame(data)
# 按Category分组,并计算每组的平均值
grouped = df.groupby('Category')
result = grouped.mean()
print(result)
1.2 多列分组
# 多列分组,并计算每组的总和
result_multi = df.groupby(['Category', 'Value']).sum()
print(result_multi)
2. 聚合函数和变换
2.1 自定义聚合函数
# 自定义聚合函数
def custom_agg(x):
return x.max() - x.min()
# 应用自定义聚合函数
result_custom_agg = df.groupby('Category')['Value'].agg(custom_agg)
print(result_custom_agg)
2.2 变换操作
# 对每个组进行变换操作,计算与均值的差值
df['Value_diff'] = df.groupby('Category')['Value'].transform(lambda x: x - x.mean())
print(df)
3. 过滤操作
# 过滤出平均值大于15的组
result_filter = df.groupby('Category').filter(lambda x: x['Value'].mean() > 15)
print(result_filter)