如何根据python中的值获取多个列名?
我有一个包含规范化值的数据帧。从每一行我都可以得到maxvalue,但现在我还想得到相应的列名 例如,df:如何根据python中的值获取多个列名?,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个包含规范化值的数据帧。从每一行我都可以得到maxvalue,但现在我还想得到相应的列名 例如,df: |----------------------------------------| | a | b | c | 'newcol' | |----------------------------------------| | 0.960 | 1.00 | 1.00 | b, c | |----------------------
|----------------------------------------|
| 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
这确实有效,谢谢你的快速回复。这能回答你的问题吗?