编辑Pandas DataFrame副本时发生意外的转换

我的pandas DataFramedf具有不同类型的列,某些值为dfNaN。


为了测试一些假设,我创建了的副本df,并使用pandas.isnull()将复制的df转换为(0,1):


df_copy = df

for column in df_copy:

    df_copy[column] = df_copy[column].isnull().astype(int)

但后两者df并df_copy包括0和1。为什么这样的代码转换df为0,1,是有办法预防呢?


白衣非少年
浏览 199回答 2
2回答

守候你守候我

您可以防止它声明:df_copy = df.copy()这将创建一个新对象。在此之前,您实际上有两个指向同一对象的指针。您可能还需要检查此答案,并注意DataFrames是可变的。顺便说一句,您可以通过以下方法简单地获得所需的结果:df_copy = df.isnull().astype(int)

沧海一幻觉

更好的记忆方式for column in df:    df[column + 'flag'] = df[column].isnull().astype(int)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python