【发布时间】:2022-09-23 22:36:07
【问题描述】:
我有这个数据
ID A B C
0 0 True False False
1 1 False True False
2 2 False False True
并想将其转换为
ID group
0 0 A
1 1 B
2 2 C
- 我想使用列名作为
category列的值标签。 - 每行最多只有一个
True值。
这是 MWE
#!/usr/bin/env python3
import pandas as pd
df = pd.DataFrame({
\'ID\': range(3),
\'A\': [True, False, False],
\'B\': [False, True, False],
\'C\': [False, False, True]
})
result = pd.DataFrame({
\'ID\': range(3),
\'group\': [\'A\', \'B\', \'C\']
})
result.group = result.group.astype(\'category\')
print(df)
print(result)
我可以做df.apply(lambda row: ...magic.., axis=1)。但是用 pandas 自己的工具难道没有更优雅的方式吗?