Python df.loc导致设置带有COPYWARNING警告消息

Python df.loc导致设置带有COPYWARNING警告消息,python,pandas,chained-assignment,Python,Pandas,Chained Assignment,我的代码的以下行会导致警告: import pandas as pd s = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD')) s.loc[-1] = [5,np.nan,np.nan,6] grouped = s.groupby(['A']) for key_m, group_m in grouped: group_m.loc[-1] = [10,np.nan,np.nan,10]

我的代码的以下行会导致警告:

import pandas as pd

s = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD'))
s.loc[-1] = [5,np.nan,np.nan,6]
grouped = s.groupby(['A'])
for key_m, group_m in grouped:
    group_m.loc[-1] = [10,np.nan,np.nan,10]

C:\Anaconda3\lib\site-packages\ipykernel\__main__.py:10: SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame
根据研究报告,这是推荐的做法,那么发生了什么


谢谢您的帮助。

文档有点混乱

您的
dataframe
是另一个
dataframe
的副本。您可以通过运行
bool(df.is\u copy)
来验证这一点,因为您正试图分配给此副本,因此您将收到警告

警告/文档告诉您首先应该如何构建
df
。既然它是一个副本,就不应该如何分配它

df = some_other_df[cols]
将使
df
成为
some\u other\u df
的副本。警告建议改为这样做

df = some_other_df.loc[:, [cols]]

现在已经完成,如果您选择忽略此警告,您可以

df = df.copy()


您需要显示从创建df到这一行的完整代码,以便我们提供帮助。不推荐使用副本。是否有一种新技术可供使用,即“未来批准”?
df=df.copy()
应该可以正常工作。我个人避免就地编辑数据帧。每次转换都会生成一个新副本,我会在需要时覆盖旧副本。
df.is_copy = None