Databricks中Pandas sum()与mean()函数返回异常结果的技术问询
解决Pandas分组sum()返回字符串拼接而非数值求和的问题
嘿,这个问题的根源很明确——你的goals_scored列数据类型是字符串(object),而Pandas对字符串类型调用sum()时,默认行为是拼接所有字符串,而非做数值求和。这就是为什么你看到一堆0和零散数字连在一起的结果,而value_counts()、sort_values()这类函数不受数据类型影响(它们只处理频次统计或字符串排序)。
一步步解决:
先确认列的类型
先验证一下这个列的实际类型,运行这段代码:print(df_fpl['goals_scored'].dtype) # 或者查看全表信息更直观 df_fpl.info()如果输出显示
object,就坐实了是字符串类型的问题。把字符串列转成数值类型
使用pd.to_numeric()转换列,同时处理可能的非数值内容(比如空值、异常字符):# 转换为整数,无法转换的值设为NaN df_fpl['goals_scored'] = pd.to_numeric(df_fpl['goals_scored'], errors='coerce')要是你确定列里全是合法数值,也可以去掉
errors='coerce',但加上它能避免转换失败报错,更稳妥。重新执行分组求和
现在再运行你的分组代码,就能得到你想要的数值求和结果了:df_fpl.groupby("team")["goals_scored"].sum()
额外小提示
如果转换后出现了NaN值,你可以根据需求用fillna()填充(比如填充0):
df_fpl['goals_scored'] = df_fpl['goals_scored'].fillna(0).astype(int)
内容的提问来源于stack exchange,提问作者ddd
相关产品推荐
相关产品推荐

