我有一个带有multindex('date','class')的熊猫(0.2.3.4版)数据框。
Col_values
date class
2019-04-30 0 324
1 6874
2 44
3 5
4 15
2019-05-31 0 393
1 6534
2 64
3 1
4 22
2019-06-30 0 325
1 5899
2 48
4 7
在'2019-06-30'中缺少第3类,因为没有数据。 我想要的是在multindex中添加第3类,并在Col_values列中自动添加零值。
答案 0 :(得分:1)
将DataFrame.unstack
与fill_value=0
与DataFrame.stack
结合使用:
df = df.unstack(fill_value=0).stack()
print (df)
Col_values
date class
2019-04-30 0 324
1 6874
2 44
3 5
4 15
2019-05-31 0 393
1 6534
2 64
3 1
4 22
2019-06-30 0 325
1 5899
2 48
3 0
4 7
另一种解决方案是将DataFrame.reindex
与MultiIndex.from_product
结合使用:
mux = pd.MultiIndex.from_product(df.index.levels, names=df.index.names)
df = df.reindex(mux, fill_value=0)
print (df)
Col_values
date class
2019-04-30 0 324
1 6874
2 44
3 5
4 15
2019-05-31 0 393
1 6534
2 64
3 1
4 22
2019-06-30 0 325
1 5899
2 48
3 0
4 7