使用级别中的唯一值重新索引 MultiIndex

Chr*_*ris 5 python pandas

我有这个数据框:

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()因为实际上我使用了四个索引,而不是最小示例中的两个索引。有什么建议?

yat*_*atu 8

您可以在定义MultiIndex使用当前MultiIndex.levels,并reindex设置fill_value0

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)