data = {'name' : ['bill', 'joe', 'steve'],
'test1' : [85, 75, 85],
'test2' : [35, 45, 83],
'test3' : [51, 61, 45]}
frame = pd.DataFrame(data)
各行の最大値を示す新しい列を追加したいと思います。
希望する出力:
name test1 test2 test3 HighScore
bill 75 75 85 85
joe 35 45 83 83
steve 51 61 45 61
時々
frame['HighScore'] = max(data['test1'], data['test2'], data['test3'])
動作しますが、ほとんどの場合、このエラーが発生します。
ValueError:複数の要素を持つ配列の真理値はあいまいです。a.any()またはa.all()を使用してください
なぜ時々しか機能しないのですか?別の方法がありますか?
>>> frame['HighScore'] = frame[['test1','test2','test3']].max(axis=1)
>>> frame
name test1 test2 test3 HighScore
0 bill 85 35 51 85
1 joe 75 45 61 75
2 steve 85 83 45 85
>>> frame['HighScore'] = frame[['test1','test2','test3']].apply(max, axis=1)
>>> frame
name test1 test2 test3 HighScore
0 bill 85 35 51 85
1 joe 75 45 61 75
2 steve 85 83 45 85
max
の複数の列間のmin
またはdf
値を決定する場合は、次を使用します。
df['Z']=df[['A','B','C']].apply(np.max,axis=1)