如何将满足特定条件的列的头部返回到pandas中的新列

时间:2018-04-22 18:17:50

标签: python pandas

对于以下数据框,如何将大于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

先谢谢

1 个答案:

答案 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