2レベルの多重指数を持つパンダDataFrameがあります。第2レベルは数値であり、第1レベルのインデックスの一意の値ごとに並べ替えられ、順番に並べられることになっていますが、ギャップがあります。「欠落している」行を挿入するにはどうすればよいですか?サンプル入力:
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
期待される出力:
# value
#A 1 0
# 2 NaN
# 3 1
#B 2 2
# 3 3
# 4 NaN
# 5 NaN
# 6 4
使用できたのではないか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)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加