为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

RISEBY 2023-12-26 15:49:59
我有一个包含标准化值的数据框。我可以从每一行获取最大值,但现在我还想获取相应的列名称。例如 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


查看完整回答
反对 回复 2023-12-26
  • 1 回答
  • 0 关注
  • 112 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信