使用Pandas对DataFrame执行groupby时报错求助
解决Pandas分组求和的代码错误问题
代码中的明确错误及修正
sum()方法参数使用错误
Pandas的groupby.sum()不支持直接传入单列名字符串指定求和列,正确指定目标列的方式有两种:- 方式一:分组后直接索引目标列再调用求和
- 方式二:用
agg()方法明确指定列与聚合规则
列名拼写错误
重命名列时把Department误写为Dapartment,会导致最终结果列名不符合预期。
修正后的完整代码
import pandas as pd df = pd.read_csv(r"C:\Users\Ouis AL-Hetar\Documents\TestEmployeeTable1.csv") # 方式一:指定列后求和 sal = df.groupby("Department")["Salary"].sum().reset_index() # 或者方式二:用agg明确指定聚合规则 # sal = df.groupby("Department").agg({"Salary": "sum"}).reset_index() sal.columns = ["Department", "Sum_of_salary"] print(sal)
额外排查方向(若修正后仍报错)
- 检查
Salary列的数值类型:如果CSV中Salary包含非数值字符(如$、逗号),需先清洗转换:df["Salary"] = df["Salary"].replace(r'[\$,]', '', regex=True).astype(float) - 确认
Department列无异常值:用df["Department"].unique()查看所有唯一值,排除空格、不可见字符导致的分组失效。
内容的提问来源于stack exchange,提问作者Ouis AL-Hetar
相关产品推荐
相关产品推荐

