新列的列名称来自最大列(按索引 pandas ) [英] New column with column name from max column by index pandas

查看:64
本文介绍了新列的列名称来自最大列(按索引 pandas )的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想创建一个新列,其列名称为按索引的最大值.

I want to create a new column with column name for the max value by index.

领带将包括两列.

                A   B   C   D   
  TRDNumber                 
ALB2008081610   3   1   1   1   
ALB200808167    1   3   4   1   
ALB200808168    3   1   3   1   
ALB200808171    2   2   5   1   
ALB2008081710   1   2   2   5   

所需的输出

                A   B   C   D   Best
  TRDNumber                 
ALB2008081610   3   1   1   1   A
ALB200808167    1   3   4   1   C
ALB200808168    3   1   3   1   A,C
ALB200808171    2   2   5   1   C
ALB2008081710   1   2   2   5   D

我尝试了以下代码

df.groupby(['TRDNumber'])[cols].max()

推荐答案

您可以这样做:

>>> f = lambda r: ','.join(df.columns[r])
>>> df.eq(df.max(axis=1), axis=0).apply(f, axis=1)
TRDNumber
ALB2008081610      A
ALB200808167       C
ALB200808168     A,C
ALB200808171       C
ALB2008081710      D
dtype: object
>>> df['best'] = _
>>> df
               A  B  C  D best
TRDNumber                     
ALB2008081610  3  1  1  1    A
ALB200808167   1  3  4  1    C
ALB200808168   3  1  3  1  A,C
ALB200808171   2  2  5  1    C
ALB2008081710  1  2  2  5    D

这篇关于新列的列名称来自最大列(按索引 pandas )的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆