首页 > 解决方案 > 不同的值会触发 Jupyter Notebook 内 Pandas 数据框中的 SettingWithCopyWarning

问题描述

我有一个非常奇怪的警告案例,非常随机出现。编辑:请注意,这个问题不是关于如何处理警告,而是关于它为什么会根据数据框中的单个值出现/消失。

我有两个文件 - test1.csv:

A,B,C
0,-0.7071068,0

和 - test2.csv:

A,B,C
0,0,0

我收到警告

c:\libs\python36-32\lib\site-packages\ipykernel_launcher.py:2: 
SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame

使用带有代码的第一个文件(第一个文件)时:

df = pd.read_csv("test1.csv")
df['B'][df['B'] > -1] = np.nan

但不是(相同的代码,第二个文件):

df = pd.read_csv("test2.csv")
df['B'][df['B'] > -1] = np.nan

在每种情况下,运行代码都会提示警告错误(更改通过,所以我没有使用副本):

   A    B   C
0  0  NaN   0

我在 Windows 10 上使用 Python 3.6.5 64 位、Jupyter 4.4.0 和 Pandas 0.23.3

标签: pythonpandasjupyter

解决方案


推荐阅读