pandas 替换列范围中的空值

but5z9lq  于 2023-04-19  发布在  其他
关注(0)|答案(1)|浏览(92)

因此,我正在编辑一个项目的dataframe,我需要将105列中的null值替换为“No answer”,为了做到这一点,我编写了以下代码,但它只创建了更新的dataframe的视图。当我查看实际的dataframe时,实际上没有任何变化。我觉得这很奇怪,因为我使用loc方法和fillna('No answer',interface=True)。我认为通过使interface =这意味着实际的 Dataframe 将被更新,loc函数也是如此。
我使用的代码:

candy.loc[:,'Q6 | 100 Grand Bar':'Q11: DAY'].fillna('NO_ANSWER', inplace=True)
candy.loc[:,'Q6 | 100 Grand Bar':'Q11: DAY']

第二个代码只是打印出我想要编辑的列的原始 Dataframe 。您可以在图像中看到,运行第一个代码后,Nan值仍然存在
有谁能解释一下我的逻辑错误,以及为什么它不能按照预期和可能的解决方案工作。下面的图片是我得到的

qvk1mo1f

qvk1mo1f1#

当你使用.loc时,你正在生成一个新的对象,它是原始 Dataframe 的sliceinplace=True应用于这个新对象,不是原始 Dataframe ,因此你看不到原始 Dataframe 的任何变化。所以你想做的是:

candy.loc[:,'Q6 | 100 Grand Bar':'Q11: DAY'] = candy.loc[:,'Q6 | 100 Grand Bar':'Q11: DAY'].fillna('NO_ANSWER')

相关问题