Pandas DataFrame使用均值填充缺失值时出现类型转换错误
Pandas DataFrame使用均值填充缺失值时出现类型转换错误
嗨,我来帮你搞定这个报错问题!
你遇到的TypeError: <U4 cannot be converted to a FloatingDtype错误,根源其实是代码写得不对——你执行train1=train1.fillna('mean')的时候,是把缺失值填充成了字符串'mean',但你的DataFrame列是浮点类型的,字符串没法直接转换成浮点数值,所以就触发了类型转换错误。而你真正想要的是用该列的实际均值来填充缺失值,对吧?
下面给你几种正确的解决方式:
如果你想给整个DataFrame里的所有数值列都用各自的均值填充缺失值,可以这么写:
train1 = train1.fillna(train1.mean(numeric_only=True))这里的
numeric_only=True很重要,它会只对数值类型的列(int、float)计算均值并填充,避免非数值列(比如字符串列)出现额外错误。如果只需要给特定的某一列填充均值,比如名为
Age的列,可以单独处理:train1['Age'] = train1['Age'].fillna(train1['Age'].mean())额外提醒一下:执行填充前,最好先检查下各列的数据类型,确保你要填充的列确实是数值型的,可以用
train1.dtypes命令查看,如果某列是字符串类型,那你得先把它转换成数值型(比如用pd.to_numeric),才能用均值填充哦。
备注:内容来源于stack exchange,提问作者Nishant Bhadauria
相关产品推荐
相关产品推荐

