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,但我无法将数字转换为类似日期的任何内容。
经过深思熟虑,我自己想出了一个解决方案。从它的糟糕程度来看,我面临的问题并不是一个非常典型的问题。
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)