Python 将嵌套的字典列表转换成Pandas数据框架
给定一个嵌套字典的列表,写一个Python程序,用它来创建一个Pandas数据框架。让我们来了解一下使用嵌套字典列表创建Pandas数据框架的逐步过程。
第1步:创建一个嵌套字典的列表。
# 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)
输出:
第2步:将dict值添加到行中。
# 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)
输出:
第三步:对数据框架进行透视并指定列名。
# 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)
输出:
以下是完整的代码。
# 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)
输出:
Name Maths Physics Chemistry
0 Chunky Pandey 89 80 NaN
1 Paras Jain 90 99 97