【问题标题】:Insert weekend dates into dataframe while keeping prices in index location将周末日期插入数据框中,同时将价格保持在索引位置
【发布时间】:2022-01-25 20:51:35
【问题描述】:

我有一个带有日期、美元开盘价和收盘价的 pandas DataFrame,如下所示:

Date        Open     Close
2021-12-08  0.88707  0.88680
2021-12-07  0.88617  0.88600
2021-12-06  0.88475  0.88458
2021-12-03  0.88442  0.88447
2021-12-02  0.88342  0.88343
2021-12-01  0.88261  0.88259

我想插入周末日期并将我的打开和关闭值保持在相同的日期,并用 NaN 填充空的打开和关闭值,如下所示:

Date        Open     Close
2021-12-08  0.88707  0.88680
2021-12-07  0.88617  0.88600
2021-12-06  0.88475  0.88458
2021-12-05  NaN      NaN
2021-12-04  NaN      NaN
2021-12-03  0.88261  0.88259
2021-12-02  0.88342  0.88343
2021-12-01  0.88261  0.88259

我尝试了各种技术,例如使用我的打开和关闭值创建一个新的 DataFrame,然后按日期重新索引:

df_USD_new = {'Open':open_USD,
    'Close':close_USD}

df = pd.DataFrame(df_USD_new)

df

date_index = pd.date_range('2016-12-01', '2021-12-08', freq='D')

df.reindex(date_index)

但这给了我一个表格,所有日期都填写为 NaN,例如:

2021-12-04  NaN NaN
2021-12-05  NaN NaN
2021-12-06  NaN NaN
2021-12-07  NaN NaN
2021-12-08  NaN NaN

我做错了什么或错过了一步吗?非常感谢您的帮助。

【问题讨论】:

    标签: pandas dataframe date currency


    【解决方案1】:

    你可以使用:

    df['Date'] = pd.to_datetime(df['Date'])
    df.set_index('Date', inplace=True)
    df = df.reindex(pd.date_range(df.index.min(), df.index.max())).sort_index(ascending=False).reset_index().rename(columns={'index': 'Date'})
    

    OUTPUT

            Date     Open    Close
    0 2021-12-08  0.88707  0.88680
    1 2021-12-07  0.88617  0.88600
    2 2021-12-06  0.88475  0.88458
    3 2021-12-05      NaN      NaN
    4 2021-12-04      NaN      NaN
    5 2021-12-03  0.88442  0.88447
    6 2021-12-02  0.88342  0.88343
    7 2021-12-01  0.88261  0.88259
    

    或者你也可以使用这个:

    df['Date'] = pd.to_datetime(df['Date'])
    df.set_index('Date', inplace=True)
    df = df.asfreq('d').sort_index(ascending=False).reset_index().rename(columns={'index': 'Date'})
    

    【讨论】:

      猜你喜欢
      • 2021-08-08
      • 2018-11-23
      • 1970-01-01
      • 2020-04-25
      • 2020-01-27
      • 2014-12-06
      • 2021-08-16
      • 2021-06-28
      • 1970-01-01
      相关资源
      最近更新 更多