问题是,并不总是清楚数据过滤操作(例如loc)返回的是数据帧的副本还是视图。因此,进一步使用这种过滤数据帧可能会令人困惑。
简单的解决方案是(除非您需要处理非常大的数据集):
df # Some DataFrame
df = df.loc[:, 0:2] # Some filtering (unsure whether a view or copy is returned)
df = df.copy() # Ensuring a copy is made
df[df["Name"] == "John"] = "Johny" # Assignment can be done now (no warning)