熊猫中最大值的列标签



我正在尝试从熊猫数据帧中提取行和贡献列标签中的最大值。例如

       A B C D
index 
x     0 1 2 3
y     3 2 1 0

我希望以下输出,

      A  B  C  D  Maxv Con
index 
x     0  1  2  3  3  D   
y     3  2  1  0  3  A

我尝试了以下方法,

df['Maxv'] = df.apply(max,axis=1)
df['Con'] = df.idxmax(axis='rows')

它只返回最大列和 Con 列的"NaN"。这里的错误是什么?

提前谢谢。

美联社

需要axis='columns'axis=1 DataFrame.idxmax

df['Con'] = df.idxmax(axis='columns')
print (df)
       A  B  C  D  Maxv Con
index                      
x      0  1  2  3     3   D
y      3  2  1  0     3   A

或:

df['Con'] = df.idxmax(axis=1)
print (df)
       A  B  C  D  Maxv Con
index                      
x      0  1  2  3     3   D
y      3  2  1  0     3   A

你会得到NaN s,因为数据与index不一致:

print (df.idxmax(axis='rows'))
A    y
B    y
C    x
D    x
dtype: object 

最新更新