我收到的SettingWithCopyWarning提示我可能有链接问题。


  SettingWithCopyWarning:
  试图在DataFrame的切片副本上设置一个值。
  尝试改用.loc [row_indexer,col_indexer] = value


我已经详细了解了这一点,但是似乎找不到适合我的用例的解决方案。这是有关该主题的精彩文章:Understanding SettingwithCopyWarning in pandas

但是,我仍然不确定如何进行。这是产生最终结果的同一行代码的三个变体,但都引发相同的错误。

变化:


X[subindex + '_DE'] = X[subindex + '_DE'].clip(lower=0, upper=200, axis=0)
X.loc[:, subindex + '_DE'] = np.clip(df.loc[:, subindex + '_DE'], 0, 200)
X.loc[:, subindex + '_DE'] = X.loc[:, subindex + '_DE'].clip(lower=0, upper=200, axis=0)


最终目标:只需裁剪(截断)列[subindex +'_DE']中超出下限(0)和上限(200)的所有值。

我不确定如何进行。一点指导会有所帮助。先感谢您。

有用的背景信息:

X是float64数据的熊猫数据帧,它以20列(功能)x 6514行(观察)的形式排列。

以下是一些可使用的数据:

> print(X[subindex + '_DE'].head(180))

> date
> 1999-12-31    33.6584
> 2000-01-01    33.6584
> 2000-01-02    33.6584
> 2000-01-03    33.6584
> ... ...
> 2000-06-25    32.6530
> 2000-06-26    32.6530
> 2000-06-27    32.6530
> Name: NYEPLC_DE, Length: 180, dtype: float64

最佳答案

找到了答案。

def中,设置X = df[](一个数据帧)。如果仅将.copy()添加到df[],则警告消失。

例如。 X = df[['column1', 'column2']].copy()

本杰明·普里克(Benjamin Pryke)的上述文章非常好...

关于python - SettingWithCopyWarning和隐藏链接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47395944/

10-09 20:20