尝试将缺少的日期时间添加到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
是否可以将索引展平为列?如果没有,那么最有效的方法是什么。
答案 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