对于以下数据框,如何将大于1的列的标题名称返回到名为“Remark”的新列
A B C
0 1 1 2
1 2 2 2
2 1 3 1
3 4 5 2
Desired Out put如下
A B C Remark
0 1 1 2 C
1 2 2 2 A,B,C
2 1 3 1 B
3 4 5 2 A,B,C
先谢谢
答案 0 :(得分:2)
使用DataFrame.dot
布尔DataFrame
列名称和分隔符,最后删除,
:
df['Remark'] = df.gt(1).dot(df.columns + ',').str[:-1]
print (df)
A B C Remark
0 1 1 2 C
1 2 2 2 A,B,C
2 1 3 1 B
3 4 5 2 A,B,C
<强>详情:
print (df.gt(1))
A B C
0 False False True
1 True True True
2 False True False
3 True True True
print (df.gt(1).dot(df.columns + ','))
0 C,
1 A,B,C,
2 B,
3 A,B,C,
dtype: object