Diccionario anidado a marco de datos multiíndice

Pandas DataFrame es una estructura de datos tabulares potencialmente heterogénea, de tamaño mutable, bidimensional con ejes etiquetados (filas y columnas). Un marco de datos es una estructura de datos bidimensional, es decir, los datos se alinean de forma tabular en filas y columnas. Pandas DataFrame consta de tres componentes principales, los datos, las filas y las columnas. Un marco de datos multiíndice es un marco de datos de pandas que tiene indexación multinivel o indexación jerárquica.

Pandas necesita valores de múltiples índices como tuplas, no como un diccionario anidado. Entonces, primero, necesitamos convertir los valores del índice anidado en tuplas.

Ejemplo 1:

Python3

# Import module
import pandas as pd
  
# Nested dictionary to convert it
# into multiindex dataframe
nested_dict = {'A': {'a': [1, 2, 3,
                           4, 5],
                     'b': [6, 7, 8,
                           9, 10]},
  
               'B': {'a': [11, 12, 13,
                           14, 15],
                     'b': [16, 17, 18,
                           19, 20]}}
  
reformed_dict = {}
for outerKey, innerDict in nested_dict.items():
    for innerKey, values in innerDict.items():
        reformed_dict[(outerKey,
                       innerKey)] = values
  
# Multiindex dataframe
reformed_dict

Producción:

Observe que en reformed_dict , los valores de índice están en la tupla. Ahora, para convertir reformed_dict en un marco de datos multiíndice, podemos usar el método pd.DataFrame() .

Python3

multiIndex_df = pd.DataFrame(reformed_dict)
multiIndex_df

Producción:

Aquí, en la salida, podemos ver el índice jerárquico/índice múltiple para la columna.

Ejemplo #2:

Python3

# Import module
import pandas as pd
  
# Nested dictionary to convert it into multiindex dataframe
nested_dict = {'India': {'State': ['Maharashtra', 'West Bengal',
                                   'Uttar Pradesh', 'Bihar', 'Karnataka'],
                         'Capital': ['Mumbai', 'Kolkata', 'Lucknow',
                                     'Patna', 'Bengaluru']},
  
               'America': {'State': ['California', 'Florida', 'Georgia',
                                     'Massachusetts', 'New York'],
                           'Capital': ['Sacramento', 'Tallahassee', 'Atlanta',
                                       'Boston', 'Albany']}}
  
reformed_dict = {}
for outerKey, innerDict in nested_dict.items():
    for innerKey, values in innerDict.items():
        reformed_dict[(outerKey, innerKey)] = values
  
# Display multiindex dataframe
multiIndex_df = pd.DataFrame(reformed_dict)
multiIndex_df

Producción:

Publicación traducida automáticamente

Artículo escrito por piyushtiwari515 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *