You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas如何基于两列重复值对指定列数值进行高效求和?

解决方案

你可以直接用pandas内置的groupby聚合方法实现需求,该方法底层为C语言实现的矢量化运算,相比Python层自行遍历的效率有量级提升,完全适配大体积DataFrame的分组计算场景。

注意你给出的示例中C列为字符串类型,需要先转换为数值类型再做求和计算,完整实现代码如下:

import pandas as pd

# 创建示例DataFrame
df1 = pd.DataFrame({
    'A': ['Spain', 'France','Spain','France','France','France','Spain',], 
    'B': ['Meat', 'Meat','Meat','Drink','Meat','Drink','Drink'], 
    'C': ['10','20','30','10','20','30','10']
})

# 转换C列为整数类型
df1['C'] = df1['C'].astype(int)
# 按A、B两列分组后对C列求和,as_index=False可让分组键保留为普通列而非索引
sum_df = df1.groupby(['A', 'B'], as_index=False)['C'].sum()

运行后得到的求和结果如下:

ABC
FranceDrink40
FranceMeat40
SpainDrink10
SpainMeat40

如果你不想修改原DataFrame的C列类型,也可以在聚合环节临时转换:

sum_df = df1.groupby(['A', 'B'], as_index=False)['C'].apply(lambda x: x.astype(int).sum()).reset_index(drop=True)

内容的提问来源于stack exchange,提问作者Babas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 00:06:03