Python Pandas agrega una columna para el valor máximo en filas de las columnas seleccionadas

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

Me gustaría agregar una nueva columna que muestre el valor máximo para cada fila.

salida deseada:

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

Algunas veces

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

Funciona pero la mayoría de las veces da este error:

ValueError: el valor de verdad de una matriz con más de un elemento es ambiguo. Utilice a.any () o a.all ()

¿Por qué solo funciona a veces? ¿Hay otra forma de hacerlo?

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

si se va a determinar un valor max o min entre varias columnas en un df , use:

 df['Z']=df[['A','B','C']].apply(np.max,axis=1)