Usando Python Pandas, estoy tratando de encontrar el Country
& Place
con el valor máximo.
Esto devuelve el valor máximo:
data.groupby(['Country','Place'])['Value'].max()
Pero, ¿cómo puedo obtener el correspondiente Country
y el Place
nombre?
Suponiendo que df
tiene un índice único, esto da la fila con el valor máximo:
In [34]: df.loc[df['Value'].idxmax()]
Out[34]:
Country US
Place Kansas
Value 894
Name: 7
Tenga en cuenta que idxmax
devuelve etiquetas de índice . Entonces, si el DataFrame tiene duplicados en el índice, es posible que la etiqueta no identifique de manera única la fila, por lo que df.loc
puede devolver más de una fila.
Por lo tanto, si df
no tiene un índice único, debe hacer que el índice sea único antes de proceder como se indicó anteriormente. Dependiendo del DataFrame, a veces puede usar stack
o set_index
para hacer que el índice sea único. O simplemente puede restablecer el índice (para que las filas se vuelvan a numerar, comenzando en 0):
df = df.reset_index()
Esto devolverá la fila completa con el valor máximo
fuente
El país y el lugar es el índice de la serie, si no necesita el índice, puede establecer
as_index=False
:Editar:
Parece que desea el lugar con el valor máximo para cada país, el siguiente código hará lo que desee:
fuente
Creo que la forma más fácil de devolver una fila con el valor máximo es obteniendo su índice.
argmax()
se puede utilizar para devolver el índice de la fila con el valor más grande.Ahora, el índice podría usarse para obtener las características de esa fila en particular:
fuente
Utilice el
index
atributo deDataFrame
. Tenga en cuenta que no escribo todas las filas en el ejemplo.También puede obtener el valor por ese índice:
Editar
Perdón por malinterpretar lo que quieres, prueba lo siguiente:
fuente
Para imprimir el País y el Lugar con el valor máximo, use la siguiente línea de código.
fuente
Mi solución para encontrar valores máximos en columnas:
, también mínimo:
fuente
Recomendaría usarlo
nlargest
para un mejor rendimiento y un código más corto. importarpandas
fuente
Puedes usar:
print (df [df ['Valor'] == df ['Valor']. max ()])
fuente
import pandas
df es el marco de datos que crea.
Usa el comando:
Esto mostrará el país y el lugar cuyo valor es máximo.
fuente
Encontré un error similar al intentar importar datos usando pandas. La primera columna de mi conjunto de datos tenía espacios antes del comienzo de las palabras. Quité los espacios y funcionó de maravilla !!
fuente