我正在尝试从熊猫数据帧中提取行和贡献列标签中的最大值。例如
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