【问题标题】:adding one day to a dataframe date column..keeps returning an error [duplicate]将一天添加到数据框日期列..不断返回错误[重复]
【发布时间】: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 但是该消息在这里没有帮助。

标签: python pandas


【解决方案1】:

这应该会删除警告

S1 = S1.assign(NewDate=S1['Date']+pd.Timedelta(days=1))

【讨论】:

    猜你喜欢
    • 2016-10-16
    • 1970-01-01
    • 1970-01-01
    • 2017-04-15
    • 2014-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    相关资源
    最近更新 更多