我有一个具有多重索引的数据框,如下所示:
a 1
2
3
b 2
3
因此,外层的值是a,b,a的内部值是1、2、3,b的内部值是2、3
我想确保内部级别上的索引对于外部级别上的所有索引都是相同的(在这种情况下,请为内部索引为1的b创建一个新行)。对于这些新行,列上的值将全部为Null。
有简单的方法吗?
答案 0 :(得分:1)
您可以使用由原始数据帧索引制成的MultiIndex
重新索引:
df.reindex(pd.MultiIndex.from_product(df.index.levels))
示例:
idx = pd.MultiIndex.from_arrays([['a','a','a','b','b'],[1,2,3,2,3]])
df = pd.DataFrame(np.random.random(5), index=idx)
>>> df
0
a 1 0.354691
2 0.322138
3 0.195380
b 2 0.731177
3 0.912628
>>> df.reindex(pd.MultiIndex.from_product(df.index.levels))
0
a 1 0.354691
2 0.322138
3 0.195380
b 1 NaN
2 0.731177
3 0.912628