我有一个DateFrame,混合了字符串和浮动行.浮动行仍然是整数,并且只更改为浮点数,因为它们是缺少的值.我想填充所有数字为零的NaN行,同时将NaN留在字符串列中.这是我目前的情况.
df.select_dtypes(include=['int', 'float']).fillna(0, inplace=True)
这不起作用,我认为是因为.select_dtypes()返回DataFrame的视图,因此.fillna()不起作用.有没有类似的方法来填充浮动行上的所有NaN.
解决方法:
使用DF.combine_first(不起作用):
df.combine_first(df.select_dtypes(include=[np.number]).fillna(0))
或DF.update(修改为inplace):
df.update(df.select_dtypes(include=[np.number]).fillna(0))
fillna失败的原因是因为DF.select_dtypes返回一个全新的数据帧,虽然它构成了原始DF的一个子集,但实际上并不是它的一部分.它本身就像一个全新的实体.因此,对它进行的任何修改都不会影响它派生的DF.
请注意,np.number选择所有数字类型.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。