对于下面的数据框,如何将大于1的列的标题名称返回到名为“Remark”的新列
A B C
0 1 1 2
1 2 2 2
2 1 3 1
3 4 5 2
期望的输出如下
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
提前致谢
最佳答案
使用DataFrame.dot
bool 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
关于python - 如何将满足特定条件的列标题返回到pandas中的新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49969240/