Python | Convierta la lista de diccionario anidado en el marco de datos de Pandas

Dada una lista de diccionarios anidados, escriba un programa de Python para crear un marco de datos de Pandas usándolo. Comprendamos el procedimiento paso a paso para crear Pandas Dataframe usando una lista de diccionarios anidados.

Paso #1: Crear una lista de diccionarios anidados.

# importing pandas
import pandas as pd
  
# List of nested dictionary initialization
list = [
        {
        "Student": [{"Exam": 90, "Grade": "a"},
                    {"Exam": 99, "Grade": "b"},
                    {"Exam": 97, "Grade": "c"},
                   ],
        "Name": "Paras Jain"
        },
        {
        "Student": [{"Exam": 89, "Grade": "a"},
                    {"Exam": 80, "Grade": "b"}
                   ],
        "Name": "Chunky Pandey"
        }
       ]
  
#print(list)

Producción:

 

Paso n.º 2: agregar valores de dictamen a las filas.

# rows list initialization
rows = []
  
# appending rows
for data in list:
    data_row = data['Student']
    time = data['Name']
      
    for row in data_row:
        row['Name']= time
        rows.append(row)
  
# using data frame
df = pd.DataFrame(rows)
  
# print(df)

Salida:

 
Paso n.º 3: marco de datos dinámico y asignación de nombres de columna.

# using pivot_table
df = df.pivot_table(index ='Name', columns =['Grade'],
                        values =['Exam']).reset_index()
  
# Defining columns
df.columns =['Name', 'Maths', 'Physics', 'Chemistry']
  
# print dataframe
print(df)

Producción:

 
A continuación se muestra el código completo:

# Python program to convert list of nested 
# dictionary into Pandas dataframe
  
# importing pandas
import pandas as pd
  
# List of list of dictionary initialization
list = [
        {
        "Student": [{"Exam": 90, "Grade": "a"},
                    {"Exam": 99, "Grade": "b"},
                    {"Exam": 97, "Grade": "c"},
                   ],
        "Name": "Paras Jain"
        },
        {
        "Student": [{"Exam": 89, "Grade": "a"},
                    {"Exam": 80, "Grade": "b"}
                  ],
        "Name": "Chunky Pandey"
        }
       ]
  
# rows list initialization
rows = []
  
# appending rows
for data in list:
    data_row = data['Student']
    time = data['Name']
      
    for row in data_row:
        row['Name']= time
        rows.append(row)
  
# using data frame
df = pd.DataFrame(rows)
  
# using pivot_table
df = df.pivot_table(index ='Name', columns =['Grade'],
                        values =['Exam']).reset_index()
  
# Defining columns
df.columns =['Name', 'Maths', 'Physics', 'Chemistry']
  
# print dataframe
print(df)

Producción:

            Name  Maths  Physics  Chemistry
0  Chunky Pandey     89       80        NaN
1     Paras Jain     90       99         97

Publicación traducida automáticamente

Artículo escrito por everythingispossible 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 *