我有这个数据框:
df = pd.DataFrame({'NUMBER_1': {('2019-07', 'A'): 4, ('2019-07', 'D'): 2, ('2019-08', 'A'): 32, ('2019-08', 'B'): 14, ('2019-09', 'A'): 32, ('2019-09', 'B'): 53, ('2019-09', 'C'): 54, ('2019-09', 'D'): 24},
'NUMBER_2': {('2019-07', 'A'): 75, ('2019-07', 'D'): 12, ('2019-08', 'A'): 42, ('2019-08', 'B'): 32, ('2019-09', 'A'): 54, ('2019-09', 'B'): 21, ('2019-09', 'C'): 97, ('2019-09', 'D'): 65}})
Run Code Online (Sandbox Code Playgroud)
df:
我在哪里寻找这个输出:
我已经看到了针对分类类型列的类似问题,但没有看到针对索引的类似问题,我正在寻找一种方法来避免使用该方法,reset_index()因为实际上我使用了四个索引,而不是最小示例中的两个索引。有什么建议?
您可以在定义MultiIndex使用当前MultiIndex.levels,并reindex设置fill_value到0:
df.reindex(pd.MultiIndex.from_product(df.index.levels), fill_value=0)
NUMBER_1 NUMBER_2
2019-07 A 4 75
B 0 0
C 0 0
D 2 12
2019-08 A 32 42
B 14 32
C 0 0
D 0 0
2019-09 A 32 54
B 53 21
C 54 97
D 24 65
Run Code Online (Sandbox Code Playgroud)