将“缺失”的多索引行插入 Pandas 数据帧

DYZ*_*DYZ 5 python multi-index pandas

我有一个带有两级多索引的 Pandas DataFrame。第二级是数字,应该对第一级索引的每个唯一值进行排序和顺序,但有间隙。如何插入“缺失”的行?样本输入:

import pandas as pd
df = pd.DataFrame(list(range(5)),
                  index=pd.MultiIndex.from_tuples([('A',1), ('A',3),
                                                   ('B',2), ('B',3), ('B',6)]),
                  columns='value')
#     value
#A 1      0
#  3      1
#B 2      2
#  3      3
#  6      4
Run Code Online (Sandbox Code Playgroud)

预期输出:

#     value
#A 1      0
#  2    NaN
#  3      1
#B 2      2
#  3      3
#  4    NaN
#  5    NaN
#  6      4
Run Code Online (Sandbox Code Playgroud)

我怀疑我可以使用resample,但我无法将数字转换为类似日期的任何内容。

DYZ*_*DYZ 2

经过深思熟虑,我自己想出了一个解决方案。从它的糟糕程度来看,我面临的问题并不是一个非常典型的问题。

new_index = d.index.to_frame()\
                .groupby(0)[1]\
                .apply(lambda x:
                         pd.Series(1, index=range(x.min(), x.max() + 1))).index
d.reindex(new_index)
Run Code Online (Sandbox Code Playgroud)