在pandas dataframe中为每个日期时间添加多行

时间:2017-03-25 08:35:51

标签: python pandas datetime

            name_col
datetime          
2017-03-22     0.2

我想在当前日期(2017-03-25)之前添加多行,以便生成的数据框如下所示:

            name_col
datetime          
2017-03-22     0.2
2017-03-23     0.0
2017-03-24     0.0
2017-03-25     0.0

如何为每个日期时间添加多行?我可以将当​​前日期视为

from datetime import datetime, timedelta, date
date.today()

2 个答案:

答案 0 :(得分:4)

您还可以使用.resample()方法:

In [98]: df
Out[98]:
            name_col
datetime
2017-03-22       0.2

In [99]: df.loc[pd.to_datetime(pd.datetime.now().date())] = 0

In [100]: df
Out[100]:
            name_col
datetime
2017-03-22       0.2
2017-03-25       0.0

In [101]: df.resample('D').bfill()
Out[101]:
            name_col
datetime
2017-03-22       0.2
2017-03-23       0.0
2017-03-24       0.0
2017-03-25       0.0

答案 1 :(得分:3)

您可以使用DF.reindex将原始DF's索引与为扩展日期范围生成的新索引范围对齐。

请注意,pd.date_range会产生与每日频率相对应的频率偏移,因此无需明确指定此freq参数。

from datetime import date

df.reindex(pd.date_range(df.index[0], date.today(), name=df.index.name), fill_value=0)

enter image description here