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.

Creando un dataframe de pandas de múltiples niveles

Estoy tratando de crear un dataframe jerárquico basado en un dataframe que tengo. He logrado crear un dataframe con índice múltiple de la siguiente manera:

Imagen de la estructura del dataframe: enlace a la imagen

Entonces, el índice de mi dataframe es el siguiente:

MultiIndex([('x',   'yellow'),
            ('x',     'blue'),
            ('x',    'green'),
            ('x',    'white'),
            ('x',    'ind10'),
            ('x',      'red'),
            ('x', 'turquoise'),
            ('x',    'black'),
            ('x',   'purple'),
            ('x',   'orange'),
            ('x',    'ind11'),
            ('y',   'yellow'),
            ('y',     'blue'),
            ('y',    'green'),
            ('y',    'white'),
            ('y',    'ind10'),
            ('y',      'red'),
            ('y', 'turquoise'),
            ('y',    'black'),
            ('y',   'purple'),
            ('y',   'orange'),
            ('y',    'ind11')],
           )

Ahora estoy tratando de convertir esto en algo con la siguiente estructura:

yellow  x   ........
        y   ........
orange  x   ........
        y   ........
.
.
.
ind11   x   ........
        y   ........

Pero no puedo lograrlo. He intentado varias formas de pd.MultiIndex.from_frame pero no he tenido éxito.

Cualquier ayuda sería muy apreciada.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para convertir el dataframe de índice múltiple actual en la estructura deseada, puede utilizar el método unstack del dataframe de pandas.

    Aquí tienes un código de ejemplo:

    # Suponiendo que tu dataframe actual se llama 'df'
    nuevo_df = df.unstack(level=0).swaplevel(axis=1)
    

    En el código anterior, el método unstack convierte el nivel más interno del índice múltiple en columnas, y el método swaplevel intercambia el orden de los niveles del índice para obtener la estructura deseada.

    ¡Espero que esto ayude!

Comments are closed.