【发布时间】:2021-11-20 04:19:31
【问题描述】:
我从 yahoo Finance 下载了一些数据,但显示的日期已经过了一天 IE 数据框的最后一行的日期是 11/19,而它应该是 11/20。尽管我对此有一个似乎可行的肮脏修复,但我不断收到此错误,这让我很担心
:2: SettingWithCopyWarning: 试图在 DataFrame 中的切片副本上设置值。 尝试改用 .loc[row_indexer,col_indexer] = value
请参阅文档中的注意事项:https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
DF 称为 S1,我尝试使用的代码行是这样的
S1['NewDate'] = S1['Date'] + pd.Timedelta(days=1)
这个错误有问题吗?我应该忽略它还是有办法编写它来消除错误?
【问题讨论】:
-
在某些时候之前这个提供的代码你有不安全的子集你的DataFrame。
S1 = df[cols]或S1 = df[mask]本来应该是S1 = df[cols].copy()或S1 = df[mask].copy()警告是让您知道df[mask]['col'] = value可能不起作用,因为df[mask]可能会生成副本并建议您使用df.loc[mask, 'col'] = value但是该消息在这里没有帮助。