Back

Explore Courses Blog Tutorials Interview Questions
0 votes
3 views
in Data Science by (17.6k points)

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 max value for each row.

desired output:

 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 only work sometimes? Is there another way of doing it?

1 Answer

0 votes
by (41.4k points)

Use this code:

>>> 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

Here, max(axis=1) is for getting the row-wise max and  max(axis=0) is for column-wise max.

You can refer to our Python online course for more information.

Browse Categories

...