以下の DataFrame があるとします。
>>> dfrm = pandas.DataFrame({
"A":[1,2,3],
"id1":[True, True, False],
"id2":[False, True, False]
})
>>> dfrm
A id1 id2
0 1 True False
1 2 True True
2 3 False False
2 つのブール列を新しい列にフラット化するにはどうすればよいですか (これにより、DataFrame の行を繰り返す必要が生じる可能性があります)。その結果、新しい列にすべての True オカレンスのエントリが表示されます。
具体的には、上記の例では、出力を次のようにする必要があります。
index A id1 id2 all_ids
0 1 True False id1
1 2 True True id1
1 2 True True id2
2 3 False False NaN
(できればマルチインデックス化されてall_ids
いませんが、それが唯一の方法である場合はそれを採用します)。
私は一般的に、これを「ワイドからロング」と見なし、逆 (1 つの列からブール値の束へ) を「ロングからワイド」と見なしました。
Pandas にこれに対する組み込みのサポートはありますか?