Python | Преобразование списка вложенных словарей в фреймворк Pandas

Опубликовано: 27 Марта, 2022

Имея список вложенных словарей, напишите программу Python для создания фрейма данных Pandas, используя его. Давайте разберемся с пошаговой процедурой создания Pandas Dataframe с использованием списка вложенных словарей.

Step #1: Creating a list of nested dictionary.

# 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)

Выход:

Step #2: Adding dict values to rows.

# 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)

Выход:


Шаг № 3: Вращение фрейма данных и присвоение имен столбцам.

Выход:

 
Below is the complete code:

# 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)

Выход:

 Имя Математика Физика Химия
0 Коренастый Панди 89 80 NaN
1 парас джайн 90 99 97

Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.

Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.