我有一个包含标准化值的数据框。我可以从每一行获取最大值,但现在我还想获取相应的列名称。例如 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 中的新列中
1 回答
狐的传说
TA贡献1804条经验 获得超3个赞
用于DataFrame.dot
将所有列与最大值进行比较:
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
添加回答
举报
0/150
提交
取消