2 回答
TA贡献1796条经验 获得超7个赞
这是一个错误Pandas
,即使数据不是数字,Pandas 仍然在 groupby 中进行 sum 和 prod 计算。我检查了源代码,该错误出现在site-packages\pandas\core\groupby\groupby.py
. 它写道:
except Exception: pass
如果您打印错误,您可能还会发现“没有要聚合的数字类型”。
作为一种解决方案,您可以在使用以下方法进行任何计算之前将数据更改为数值:
df['column'] = pd.to_numeric(df['column'])
某些帖子可能会告诉您在errors='coerce'
内部添加,pd.to_numeric
以便将替换非数字元素na
并且不会引发错误。但是,在许多情况下,这意味着数据中存在一些错误。我们需要修复数据而不是消除错误。
TA贡献1877条经验 获得超6个赞
这是我能想到的最好的
final["Sum"]= final.groupby(['Cont_bin']).PopEst.transform('sum')
final['Sum'] = pd.to_numeric(final['Sum'])
final["PopEst"]= pd.to_numeric(final["PopEst"])
final["Size"]=pd.to_numeric(final["Size"])
final["Mean"]=final.groupby(['Cont_bin', 'Size']).PopEst.transform('mean')
return(final)
您需要将平均值强制转换为数字以获得标准偏差
添加回答
举报