我有一个看起来像的数据框
ID Cat1 Cat2 Cat3 Cat4
3432432 True False True False
1242323 False True False False
3423883 False False False True
如何将其转换为选择第一列为 True 的数据框?
ID Status
3432432 Cat1
1242323 Cat2
3423883 Cat4
最佳答案
您可以利用 idxmax
将返回第一个 True 的事实:
>>> df.set_index("ID").idxmax(axis=1).reset_index(name="Status")
ID Status
0 3432432 Cat1
1 1242323 Cat2
2 3423883 Cat4
这是可行的,因为我们有
>>> df.iloc[:,1:]
Cat1 Cat2 Cat3 Cat4
0 True False True False
1 False True False False
2 False False False True
>>> df.iloc[:,1:].idxmax(axis=1)
0 Cat1
1 Cat2
2 Cat4
dtype: object
关于python - Pandas:将列名压缩为 True 的单元格值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34955321/