gpt4 book ai didi

python - 意外的 SettingWithCopyWarning

转载 作者:太空宇宙 更新时间:2023-11-04 03:10:28 27 4
gpt4 key购买 nike

我一直通过使用 .loc[: (foo, bar)] 构造来避免大多数 SettingWithCopy 警告。

但我不知道如何正确构造一个案例:

for sec in security_list:
stochs.loc[:, (sec,'entry_signal')][stochs[sec, 'raw_signal'].shift(1) == stochs[sec, 'raw_signal']] = 0

我想做的是:在 stochs 数据框中,添加一个新列 entry_signalentry_signal 为 1、0 或 -1。如果 raw_signal 与之前的 raw_signal 没有变化,则为 0,否则为 raw_signal 的值(1 或 -1)。

我猜 pandas 不喜欢第二个索引片段,[stochs[sec, 'raw_signal'].shift(1) == stochs[sec, 'raw_signal']] 因为它会生成复印件。

谁能建议如何正确地重写这个声明?

谢谢

最佳答案

更改为:

stochs.loc[stochs[sec, 'raw_signal'].shift(1) == stochs[sec, 'raw_signal'], (sec,'entry_signal')] = 0 

你所做的叫做chained indexing因为你是双下标所以你应该把条件放在 loc

的括号内

关于python - 意外的 SettingWithCopyWarning,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38180124/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com