将缺失的日期添加到dt系列的Multiindex中

时间:2019-11-11 14:43:58

标签: python pandas

尝试将缺少的日期时间添加到MultiIndex。日期时间是一系列的(称为“ ndx”)。 简单地这样做是行不通的:

df.reindex(index=ndx, level=0, fill_value=np.nan)

我所拥有的:

                   Column1
Date       Name
2016-11-01 AAA     25
           BBB     26
2016-11-07 CCC     27

我想要的东西:

                   Column1
Date       Name
2016-11-01 AAA     25
           BBB     26
2016-11-02 NaN     NaN
2016-11-03 NaN     NaN
2016-11-04 NaN     NaN
2016-11-05 NaN     NaN
2016-11-06 NaN     NaN
2016-11-07 CCC     27

是否可以将索引展平为列?如果没有,那么最有效的方法是什么。

1 个答案:

答案 0 :(得分:2)

DataFrame.merge与左联接一起使用,只有首先将MultiIndex转换为列:

ndx = pd.Series(pd.date_range('2016-11-01','2016-11-07'))

df = ndx.to_frame('Date').merge(df.reset_index(), how='left').set_index(['Date','Name'])
print (df)
                 Column1
Date       Name         
2016-11-01 AAA      25.0
           BBB      26.0
2016-11-02 NaN       NaN
2016-11-03 NaN       NaN
2016-11-04 NaN       NaN
2016-11-05 NaN       NaN
2016-11-06 NaN       NaN
2016-11-07 CCC      27.0