Python 按索引从max column获得列名的新列

Python 按索引从max column获得列名的新列,python,pandas,Python,Pandas,我想创建一个新列,列名称为“按索引最大值” 领带将包括两列 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

我想创建一个新列,列名称为“按索引最大值”

领带将包括两列

                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
df.idxmax(axis=1)
使您接近,但不幸的是,它不处理关系,只给您第一列的最大值。