Dataframe:为缺少的日期添加新行



我有以下熊猫df,以日期为索引:

S&P500    Europe     Japan
Date                                    
2002-12-23  0.247683  0.245252  0.203916
2002-12-24  0.241855  0.237858  0.200971
2002-12-26  0.237095  0.230614  0.197621
2002-12-27  0.241104  0.250323  0.191855

我需要为每个缺失的日期添加新行(考虑df的第一个和最后一个日期之间的日期)。对于新行,列中的值应该向前填充。这是预期的输出(添加了2002-12-25):

S&P500    Europe     Japan
Date                                    
2002-12-23  0.247683  0.245252  0.203916
2002-12-24  0.241855  0.237858  0.200971
2002-12-25  0.241855  0.237858  0.200971
2002-12-26  0.237095  0.230614  0.197621
2002-12-27  0.241104  0.250323  0.191855

我创建了一个列表,其中包含第一个日期和最后一个日期之间的所有日期:

min_date=df.index.min()
max_date=df.index.max()
date_list=pd.date_range(min_date,max_date-timedelta(days=1),freq='d')

有没有办法检查"date_list"的日期?不在df索引中并相应地添加行?新行的列应该用NaN填充,以便我以后可以向前填充它们。由于

您可以使用.reindex+.ffill():

min_date = df.index.min()
max_date = df.index.max()
date_list = pd.date_range(min_date, max_date, freq="D")
df = df.reindex(date_list).ffill()
print(df)

打印:

S&P500    Europe     Japan
2002-12-23  0.247683  0.245252  0.203916
2002-12-24  0.241855  0.237858  0.200971
2002-12-25  0.241855  0.237858  0.200971
2002-12-26  0.237095  0.230614  0.197621
2002-12-27  0.241104  0.250323  0.191855

OR:使用method=参数

df = df.reindex(date_list, method="ffill")

相关内容

  • 没有找到相关文章

最新更新