首页 > 解决方案 > 由于列中有“nan”值,有没有办法解决“DataError:没有要聚合的数字类型”?

问题描述

我有一个这样的数据框

import pandas as pd
import numpy as np
df = pd.DataFrame({
    "name": ["john","peter","john","peter","peter"],
    "height": ["6","5","4","nan","8"],
})
df

我想做 GROUPBY name 和 AGG 的高度平均值

df2=df.groupby('name')
df3=df2.agg({'height':'mean'})

但我得到这个错误 DataError: No numeric types to aggregate 我做了一些搜索并应用了这个

df.height = pd.to_numeric(df.height,errors='ignore')

但是代码仍然不起作用,我得到了同样的错误!

“nan”值是由于我在以前的数据帧上进行的一些连接而创建的。感谢您的时间和帮助。我会赞成你的答案。

标签: pythonpandaspandas-groupby

解决方案


您需要使用 sum() 函数

df2=df.groupby('name').height.sum()

我希望你觉得这对你有帮助


推荐阅读