panda中的条件行丢弃会影响以前定义的数据帧



今天在python编码中遇到了一个问题。我试图有条件地从数据帧中删除一些行。基本上,我想创建一个数据帧的副本,这样我就可以通过比较复制的数据帧和我从中删除行的数据帧来查看哪些行被删除了。以下是代码中的一个简化示例:

import pandas as pd
# define simple data frame
d = {'col1': ['chris', 'ben'], 'col2': [3, 8]}
df=pd.DataFrame(data=d)
# define df2 to be identical to df AS CURRENTLY DEFINED
df2=df
# next, drop all rows in df if 'col1' = 'ben'
df.drop(df.loc[df['col1']=='ben'].index, inplace=True)

我真正感到困惑的是,当逐行执行时,即使最后一行代码只引用df,它也会对df2执行该操作!

为什么会这样?有什么东西我完全不见了吗?

使用d2=df.copy()而不是d2=df来创建副本

最新更新