📅  最后修改于: 2023-12-03 15:34:19.525000             🧑  作者: Mango
在 Python 中,我们经常要将一些数据结构转换为 Pandas 中的数据框以便进行数据分析。本文将介绍如何将嵌套字典列表转换为 Pandas 数据框。
首先,我们需要创建一个嵌套字典列表。这里我们以一个学生成绩表为例:
scores = [{"name": "Alice", "score": {"Chinese": 80, "Math": 90}},
{"name": "Bob", "score": {"Chinese": 90, "Math": 85}},
{"name": "Charlie", "score": {"Chinese": 85, "Math": 95}}]
其中每一个元素都是一个字典,其中包含学生姓名和科目成绩的字典。
接下来,我们可以通过 Pandas 中的 DataFrame 函数将其转换为 Pandas 数据框:
import pandas as pd
df = pd.DataFrame(scores)
这样就成功将嵌套字典列表转换为 Pandas 数据框了。我们可以通过打印数据框来查看转换结果:
print(df)
输出结果如下:
name score
0 Alice {'Chinese': 80, 'Math': 90}
1 Bob {'Chinese': 90, 'Math': 85}
2 Charlie {'Chinese': 85, 'Math': 95}
由于 Pandas 数据框中每个元素都应该是标量值,因此需要将嵌套字典展开。我们可以使用 Pandas 中的 apply 函数来实现:
df = pd.concat([df.drop(["score"], axis=1),
df["score"].apply(pd.Series)], axis=1)
其中,drop 函数用于删除原始数据框中的 score 列,apply 函数用于将 score 列展开成若干个列,然后使用 concat 函数将两个数据框合并。
最终的数据框如下:
name Chinese Math
0 Alice 80 90
1 Bob 90 85
2 Charlie 85 95
这样我们就成功将嵌套字典列表转换为 Pandas 数据框了。