尽管在数据帧上使用了.loc方法,但仍在获取SettingWithCopyWarning

时间:2016-08-11 15:22:39

标签: python python-2.7 pandas

我正在尝试修改数据框中的单个“单元格”。现在,修改工作,但我得到这个警告:

In [131]: df.loc[df['Access date'] == '06/01/2016 00:35:34', 'Title'] = 'XXXXXXXX'
ipython:1: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame

See the the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy

Pandas: Replacing column values in dataframe使用.loc方法,但我收到此警告(我没有看到我在这里修改的数据框副本)

这个警告应该在这里发生吗?如果没有,我该如何禁用它?

更新

似乎df是另一个数据框的(弱参考)副本(使用.is_copy检查)。

1 个答案:

答案 0 :(得分:0)

警告中的该链接在以下部分详细说明了问题:为什么使用链式索引时分配失败?

本节摘要:在某些情况下,pandas不保证数组的内存处理,所以即使使用.loc的某些实现,也会出现警告,告诉您这可能效率极低。

要关闭警告,您可以使用警告库并在其中一个ipython笔记本单元格中执行以下代码。

import warnings
warnings.catch_warnings()
warnings.simplefilter("ignore")