Python Pandas maximum value of selected columns

data = {'name' : ['bill', 'joe', 'steve'], 'test1' : [85, 75, 85], 'test2' : [35, 45, 83], 'test3' : [51, 61, 45]} frame = pd.DataFrame(data) 

I would like to add a new column that shows the maximum value for each row.

desired result:

  name test1 test2 test3 HighScore bill 75 75 85 85 joe 35 45 83 83 steve 51 61 45 61 

Sometimes

 frame['HighScore'] = max(data['test1'], data['test2'], data['test3']) 

works, but most of the time gives this error:

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any () or a.all ()

Why does it work only occasionally? Is there any other way to do this?

+42
python max pandas
Nov 17 '13 at 16:22
source share
2 answers
 >>> 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 
+65
Nov 17 '13 at 16:33
source share
 >>> 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 
+11
Nov 17 '13 at 16:33
source share



All Articles