如何根据python中的值获取多个列名?

如何根据python中的值获取多个列名?,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个包含规范化值的数据帧。从每一行我都可以得到maxvalue,但现在我还想得到相应的列名 例如,df: |----------------------------------------| | a | b | c | 'newcol' | |----------------------------------------| | 0.960 | 1.00 | 1.00 | b, c | |----------------------

我有一个包含规范化值的数据帧。从每一行我都可以得到maxvalue,但现在我还想得到相应的列名

例如,df:

|----------------------------------------|
|    a    |     b     |   c   | 'newcol' |
|----------------------------------------|
|  0.960  |    1.00   | 1.00  |  b, c    |
|----------------------------------------|
|  0.922  |    0.955  | 0.971 |  c       |
|----------------------------------------|
因此,我想创建包含具有最大值的列名的newcol。 我尝试了
df.idxmax(axis=1)
,但是这只返回第一列的最大值

尝试解决相同的问题,但数据存储在列表中,而不是同一df中的新列中。用于将所有列与最大值进行比较:

df['newcol'] = df.eq(df.max(axis=1), axis=0).dot(df.columns + ',').str.strip(',')
print (df)
       a      b      c newcol
0  0.960  1.000  1.000    b,c
1  0.922  0.955  0.971      c

这确实有效,谢谢你的快速回复。这能回答你的问题吗?