你的“df2”是另一个数据帧的一部分。你需要显式地复制它
在尝试“drop”之前使用`df2=df2.copy()``
考虑以下数据帧:
import pandas as pdimport numpy as npdf1 = pd.Dataframe(np.arange(20).reshape(4, 5), list('abcd'), list('ABCDE'))df1让我把“df1”的一部分分配给
df2
df2 = df1[['A', 'C']]
`df2现在是df1的一部分,应该会触发那些讨厌的东西
`如果我们试图更改“df2”中的内容,请使用copywarning设置。我们来一杯
df2.drop('c')No problems. How about:
df2.drop('c', inplace=True)There it is:
问题是熊猫试图提高效率,并跟踪“df2”是什么
指向与“df1”相同的数据。它正在保持这种关系。这个
警告是告诉你,你不应该试图弄乱原来的
通过切片的数据帧。
请注意,当我们查看“df2”时,已经删除了“c”行。
df2
再看一下“df1”,我们看到“c”行还在。
df1
pandas复制了一个“df2”,然后删除了“c”行。这是潜在的
与我们的意图不符,我们可能认为我们做了’df2’a’
切片并指向与“df1”相同的数据。所以熊猫在警告我们。
要看不到警告,请自己复制。
df2 = df2.copy()# ordf2 = df1[['A', 'C']].copy()



