2017-06-20 3 views
1

私はpandasデータフレームから行の最大値を抽出し、列ラベルを提供しようとしています。例えば、私は次の出力、パンダのmaxの列ラベル

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

は、私は次のことを試してみました期待

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

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

それはコン列にのみ最大列と 'はNaN' を返しました。ここのエラーは何ですか?

ありがとうございました。

AP

答えて

2

必要性axis='columns'またはaxis=1DataFrame.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 

または:データはindexに揃えるされていないため、

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秒を取得:

print (df.idxmax(axis='rows')) 
A y 
B y 
C x 
D x 
dtype: object 
関連する問題