我收到的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/