如何用Pandas同时按多列分组并实现计数与求和?
Pandas分组同时实现计数与求和操作
当然可以通过Pandas的groupby配合agg方法一次性实现分组后的计数与求和操作,具体实现如下:
1. 创建原始DataFrame(方便复现)
import pandas as pd df = pd.DataFrame({ 'Individual': ['A', 'A', 'A', 'A', 'B', 'B', 'B'], 'Category': [1, 1, 1, 2, 1, 2, 2], 'Amount': [250, 300, 500, 350, 200, 300, 450], 'Extras': [30, 10, 8, 12, 9, 20, 15] })
2. 分组聚合实现需求
# 按Individual和Category分组,同时执行计数与求和 result = df.groupby(['Individual', 'Category']).agg( Count=('Individual', 'size'), # 统计每组的行数 Amount=('Amount', 'sum'), # 对Amount列求和 Extras=('Extras', 'sum') # 对Extras列求和 ).reset_index() print(result)
输出结果
Individual Category Count Amount Extras 0 A 1 3 1050 48 1 A 2 1 350 12 2 B 1 1 200 9 3 B 2 2 750 35
补充说明
size用于统计每组的总行数,若数据存在缺失值且只想统计非缺失值数量,可以改用count;agg方法支持为不同列指定不同的聚合操作,格式为新列名=(原列名, 聚合函数),灵活性很强。
内容的提问来源于stack exchange,提问作者Vuotelin
相关产品推荐
相关产品推荐

