如何使用Pandas按指定列分组,仅当另一列值相同时合并并求和?
解决方案:按多列分组并对指定列求和
你需要的是同时按A列和B列分组,仅当两列值都相同时才合并行并对C列求和,用Pandas的groupby方法就能轻松实现:
import pandas as pd # 构造示例数据 test = pd.DataFrame({'A':['0','0','0','1'],'B':['AAA','AAA','BBB','CCC'],'C':[0.5,0.2,0.3,0.1]}) # 按A、B分组,对C列求和,保留原列结构 result = test.groupby(['A', 'B'], as_index=False)['C'].sum() print(result)
运行后得到的结果完全符合你的需求:
A B C 0 0 AAA 0.7 1 0 BBB 0.3 2 1 CCC 0.1
关键说明
groupby(['A', 'B']):将A和B值完全匹配的行划分为同一组,这正好满足你"仅当B列值也相同时才求和"的要求as_index=False:避免把分组列设置为DataFrame的索引,保持和原数据一致的列格式['C'].sum():仅对C列执行求和操作,其他分组列保留唯一值
内容的提问来源于stack exchange,提问作者ant.kr
相关产品推荐
相关产品推荐

