如何在Pandas中实现类似Excel SUMIFS的逐行关联分组求和功能
Pandas实现等效Excel SUMIFS的分组汇总列追加方案
实现该需求的核心是使用groupby + transform组合,不需要手动枚举任何分组值,会自动将分组求和结果回填到对应分组的每一行,和Excel SUMIFS的逻辑完全一致。
核心实现代码
假设你的原始DataFrame包含date(日期)、product(产品)、sales(单条记录销量)三个字段,实现代码如下:
import pandas as pd # 按【日期+产品】两个条件分组,对销量求和后回填到原表每一行 df['daily_product_total_sales'] = df.groupby(['date', 'product'])['sales'].transform('sum')
逻辑说明
groupby中传入的列就是你需要匹配的条件列,和Excel SUMIFS中依次添加的判断条件完全对应,如有更多匹配维度,直接在列表中追加列名即可transform('sum')不会将数据聚合为独立的汇总表,会自动将每个分组的求和结果匹配到该分组的所有原始行,完全符合你要的在原记录旁追加汇总值的需求
可运行测试样例
你可以用下面的样例验证效果:
# 构造测试数据 data = { 'date': ['2023-01-01', '2023-01-01', '2023-01-01', '2023-01-02', '2023-01-02'], 'product': ['apple', 'apple', 'orange', 'apple', 'orange'], 'sales': [10, 20, 15, 5, 25] } df = pd.DataFrame(data) # 执行汇总逻辑 df['daily_product_total_sales'] = df.groupby(['date', 'product'])['sales'].transform('sum') print(df)
内容的提问来源于stack exchange,提问作者Zaur Guliyev
相关产品推荐
相关产品推荐

