Python 重新索引Dataframe的DatetimeIndex只提供缺少的数据

Python 重新索引Dataframe的DatetimeIndex只提供缺少的数据,python,pandas,reindex,Python,Pandas,Reindex,我对这个想法已经没有什么想法了:我使用的数据集是使用 import pandas as pd data = pd.read_csv('data.csv', index_col=[0], names=['Date', 'GDAXI', 'GSPC'], header=0) data 输出: GDAXI GSPC Date 2019-07-23 12490.740234 3005.469971 2019-07-24 12

我对这个想法已经没有什么想法了:我使用的数据集是使用

import pandas as pd
data = pd.read_csv('data.csv', index_col=[0], names=['Date', 'GDAXI', 'GSPC'], header=0)
data
输出:

             GDAXI              GSPC
Date        
2019-07-23  12490.740234    3005.469971
2019-07-24  12522.889648    3019.560059
2019-07-25  12362.099609    3003.669922
2019-07-26  12419.900391    3025.860107
2019-07-27  12419.900391    3025.860107
... ... ...
2020-07-17  12919.610352    3224.729980
2020-07-20  13046.919922    3251.840088
2020-07-21  13171.830078    3257.300049
2020-07-22  13104.250000    3276.020020
2020-07-23  13103.389648    3256.409912
261 rows × 2 columns
缺少日期(周末),我想使用0填充这些日期

data = data.reindex(dates, fill_value=0)
这将提供以下输出:

          GDAXI GSPC
2019-07-23  0.0 0.0
2019-07-24  0.0 0.0
2019-07-25  0.0 0.0
2019-07-26  0.0 0.0
2019-07-27  0.0 0.0
... ... ...
2020-07-19  0.0 0.0
2020-07-20  0.0 0.0
2020-07-21  0.0 0.0
2020-07-22  0.0 0.0
2020-07-23  0.0 0.0
367 rows × 2 columns
因此,出于某种原因,
reindex()
将所有内容解释为丢失的数据

有人知道发生了什么事吗?干杯

试试这个-

  • 使用pd.to_Datetime函数将日期列转换为日期时间
  • 现在,使用data=data.set_index('Date')将日期设置为索引
  • 以开始和结束日期为参考,使用timedelta生成列表“日期”
  • 现在应该可以了-data=data.reindex(日期,填充值=0)

  • 扩展@mahir kukreja answer,这对我很有用:

    df.index = pd.to_datetime(df.index)
    dates = pd.date_range(df.index.min(), df.index.max())
    df = df.reindex(dates, fill_value=0)
    

    在reindex命令中,您可以参考日期。这个定义在哪里?