Pandas调用fillna时全列变为NaN而非仅替换空值的问题咨询
问题原因
核心错误是你同时使用了inplace=True参数和赋值操作:
- pandas中所有带
inplace参数的方法,当inplace=True时,方法会直接修改原对象,返回值为None - 你的代码
combine_df[null_columns] = combine_df[null_columns].fillna('0', inplace=True)本质是把None赋值给了目标列,所以所有目标列的全部值都被覆盖为空,才会出现全列空值的统计结果。
正确实现方式
两种写法二选一即可:
- 去掉
inplace参数,直接接收fillna的返回值
combine_df[null_columns] = combine_df[null_columns].fillna('0')
- 保留
inplace=True,不需要额外赋值
combine_df[null_columns].fillna('0', inplace=True)
内容的提问来源于stack exchange,提问作者chanbo chung
相关产品推荐
相关产品推荐

