Python Pandas add column for row-wise max 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 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?

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

From: stackoverflow.com/q/20033111

Back to homepage or read more recommendations: