我想转换一个看起来像这样的表:
Blue Green Red
Thing 1 No Yes No
Thing 2 Yes No No
Thing 3 Yes No No
变成这种风格:
Color
Thing 1 Green
Thing 2 Blue
Thing 3 Blue
是否有很好的方法在python或pandas中做到这一点?这些表格样式有名称吗?
答案 0 :(得分:5)
如果每一行都只有一个“是”,则可以
df.eq('Yes') @ df.columns
输出:
Thing 1 Green
Thing 2 Blue
Thing 3 Blue
dtype: object
答案 1 :(得分:5)
答案 2 :(得分:1)
使用:
df.where(df.eq('Yes')).stack().reset_index(level=1)['level_1']
Thing 1 Green
Thing 2 Blue
Thing 3 Blue
Name: level_1, dtype: object