Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么我会得到;试图在来自数据帧的切片副本上设置一个值";_Python_Pandas_Dataframe - Fatal编程技术网

Python 为什么我会得到;试图在来自数据帧的切片副本上设置一个值";

Python 为什么我会得到;试图在来自数据帧的切片副本上设置一个值";,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个名为df的数据帧,其中列a。 我执行以下代码: df['A'][df['A'] < 4] = np.NaN df['A'][df['A']

我有一个名为
df
的数据帧,其中列
a
。 我执行以下代码:

df['A'][df['A'] < 4] = np.NaN
df['A'][df['A']<4]=np.NaN
我得到以下信息:

A value is trying to be set on a copy of a slice from a DataFrame

See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
df['A'][df['A'] < 4] = np.NaN
bla.py:763: SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame
试图在数据帧切片的副本上设置值
请参阅文档中的注意事项:http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-查看与复制
df['A'][df['A']<4]=np.NaN
bla.py:763:SettingWithCopyWarning:
试图在数据帧切片的副本上设置值
代码起作用,
df
在执行这一行后被更改,因此实际上它不会尝试更改
df
的副本,而是更改原始
df

为什么我会收到这个警告


注:我查看了有关堆栈溢出的类似问题,但找不到答案

使用
.loc
分配值
df.loc[df['A']<4,'A']=np.nan
类似问题:@ResidentSleeper可能
.loc
会删除警告,但它仍然不能解释为什么我首先会收到警告。@哦,请在Anshul链接的答案中给出很好的解释。使用
.loc
赋值
df.loc[df['a']<4,'a']=np.nan
类似的问题:@ResidentSleeper可能
.loc
会删除警告,但它仍然不能解释为什么我首先会收到警告。@OopsUser在Anshul链接的答案中给出了很好的解释。