es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo regresar 3 columnas encima y debajo de la celda especificada en un dataframe de pandas?

Este es mi marco de datos. Si busco Iowa, el código debería devolver el nombre del país (EE. UU. en este caso) y 3 estados por encima de él (Hawaii, California, Missouri)-Iowa- y 3 por debajo (Colorado, Alaska, Texas en este caso). ¿Cómo hacer esto?

País Estados
India Bangalore
Pune
Delhi
Maharashtra
Hyderabad
Gujarat
EE. UU. Arizona
Hawaii
California
Missouri
Iowa
Colorado
Alaska
Texas
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para obtener la salida deseada, primero necesitamos filtrar el dataframe según el estado de entrada, que es Iowa en este caso. Luego, podemos rebanar el dataframe filtrado para obtener los 3 estados arriba y abajo de Iowa mediante los valores del índice. Aquí está el código para hacer eso:

    # Suponiendo que el dataframe está almacenado en una variable llamada "df"
    
    input_state = "Iowa"
    
    # Filtrar el dataframe según el estado de entrada
    filtered_df = df[df["States"] == input_state]
    
    # Obtener el índice del estado de entrada
    idx = filtered_df.index[0]
    
    # Rebanar el dataframe para obtener 3 estados arriba y abajo del estado de entrada
    output_df = df.iloc[max(idx-3, 0) : min(idx+4, len(df))]
    

    En el código anterior, primero filtramos el dataframe df según el estado de entrada usando la indexación booleana. Esto crea un nuevo dataframe filtered_df que solo contiene filas donde la columna States coincide con el estado de entrada.

    A continuación, obtenemos el valor de índice del estado de entrada del dataframe filtrado usando el atributo index y tomando el primer valor ya que solo tenemos una fila en el dataframe filtrado.

    Finalmente, rebanamos el dataframe original df utilizando los valores de índice calculados en función del estado de entrada. Usamos las funciones max y min para asegurarnos de que no salimos de los límites al obtener los 3 estados arriba y abajo del estado de entrada. El dataframe resultante output_df contiene la salida deseada: el nombre del país (EE. UU.) y 3 estados arriba y abajo de Iowa.

Comments are closed.