seleccionar - Python Pandas agrega una columna para el valor máximo en filas de las columnas seleccionadas
seleccionar filas y columnas en python (3)
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
A 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. Use a.any () o a.all ()
¿Por qué solo funciona a veces? ¿Hay alguna otra forma de hacerlo?
si se va a determinar un valor max
o min
entre múltiples columnas en un df
entonces use:
df[''Z'']=df[[''A'',''B'',''C'']].apply(np.max,axis=1)
>>> 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
>>> 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