假设我有下面的 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
如何将两个布尔列展平为一个新列(这可能会导致 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
但如果这是唯一的方法,我会接受)。
我通常将其视为“从宽到长”,反之(从一列到一堆布尔值)为“从长到宽”。
Pandas 中是否有对此的内置支持?