首页 > 解决方案 > 熊猫中的条件行删除会影响先前定义的数据框

问题描述

今天在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 上执行该操作

为什么是这样?有什么我完全想念的吗?

标签: pythonpandasdataframe

解决方案


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


推荐阅读