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

如何使用Groupby和Sum对pandas DataFrame分组聚合且不指定列名

解决方法

你之前只返回Echo列的求和结果,核心原因是Charlie和Delta列存在空字符串'',被pandas识别为object类型,默认不会参与数值聚合操作,仅本身是数值类型的Echo列被计算。

你可以先批量处理数值列的空值,再执行分组求和,全程不需要显式列出Charlie、Delta、Echo这些列名:

import pandas as pd

# 你的原始DataFrame构造代码
df=pd.DataFrame({'Able': ['Blue', 'Green', 'Red', 'Orange'], 'Baker':[ 'New York', 'New Jersey', 'New York', 'New Jersey'], 'Charlie':[3,4,'',7], 'Delta':['',5,6,''],'Echo':[100,200,300,400]}).set_index('Able')

# 1. 筛选出除分组键Baker之外的所有列,批量处理空值并转数值类型
num_cols = df.columns.difference(['Baker'])
df[num_cols] = df[num_cols].replace('', 0).apply(pd.to_numeric)

# 2. 按Baker分组,对其余所有列自动求和
res = df.groupby('Baker', as_index=False).sum()

执行后打印res即可得到你预期的输出:

Baker  Charlie  Delta  Echo
0  New Jersey       11      5   600
1    New York        3      6   400

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 04:06:04