📌  相关文章
📜  Python|将嵌套字典列表转换为 Pandas 数据框(1)

📅  最后修改于: 2023-12-03 15:34:19.525000             🧑  作者: Mango

Python | 将嵌套字典列表转换为 Pandas 数据框

在 Python 中,我们经常要将一些数据结构转换为 Pandas 中的数据框以便进行数据分析。本文将介绍如何将嵌套字典列表转换为 Pandas 数据框。

1. 创建嵌套字典列表

首先,我们需要创建一个嵌套字典列表。这里我们以一个学生成绩表为例:

scores = [{"name": "Alice", "score": {"Chinese": 80, "Math": 90}},
          {"name": "Bob", "score": {"Chinese": 90, "Math": 85}},
          {"name": "Charlie", "score": {"Chinese": 85, "Math": 95}}]

其中每一个元素都是一个字典,其中包含学生姓名和科目成绩的字典。

2. 转换为 Pandas 数据框

接下来,我们可以通过 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}
3. 展开嵌套字典

由于 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 数据框了。