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

我有一个包含标准化值的数据框。我可以从每一行获取最大值,但现在我还想获取相应的列名称。


例如 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),但是这仅返回具有最大值的第一列

查找 Pandas DataFrame 中最大的所有索引尝试解决相同的问题,但是数据存储在列表中而不是同一 df 中的新列中



RISEBY
浏览 113回答 1
1回答

狐的传说

用于DataFrame.dot将所有列与最大值进行比较:df['newcol'] = df.eq(df.max(axis=1), axis=0).dot(df.columns + ',').str.strip(',')print (df)       a      b      c newcol0  0.960  1.000  1.000    b,c1  0.922  0.955  0.971      c
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python