Python如何将字典转为数据框

Python如何将字典转为数据框

作者:Rhett Bai发布时间:2026-01-14阅读时长:0 分钟阅读次数:5

用户关注问题

Q
如何使用Python将嵌套字典转换为数据框?

我有一个包含多层嵌套的字典结构,想要将其转换成pandas数据框,应该怎样操作?

A

利用pandas的json_normalize函数处理嵌套字典

要将嵌套字典转换为数据框,可以使用pandas的json_normalize函数。它能够将多层嵌套的字典展开为平坦的表格格式,从而方便转换成DataFrame。示例代码:

from pandas import json_normalize
import pandas as pd

nested_dict = {
  'id': 1,
  'info': {
    'name': 'Alice',
    'age': 25
  },
  'scores': {
    'math': 90,
    'english': 88
  }
}

df = json_normalize(nested_dict)
print(df)

这会将嵌套的键值展开,生成对应的列。

Q
有没有简单方法将平铺字典转换为pandas数据框?

我有一个普通的字典,键是列名,值是数据列表,怎么快速把它转换成数据框?

A

直接使用pandas.DataFrame构造函数转换字典

当字典的结构是以列名为键,数据列表为值时,可以直接调用pandas的DataFrame构造函数进行转换。例如:

import pandas as pd

data = {
  'name': ['Tom', 'Jane', 'Alice'],
  'age': [20, 22, 24],
  'score': [88, 92, 85]
}

df = pd.DataFrame(data)
print(df)

这会马上生成对应的数据框,适合数据组织为各列形式的字典。

Q
在Python中如何处理字典转换为数据框时的缺失值?

转换字典为数据框时遇到不同键对应的数据长度不一致,会产生缺失值,有什么方法可以处理这些缺失部分?

A

通过pandas自动处理缺失值及后续填充方法

当字典中不同键对应的列表长度不统一时,pandas会在转换时以NaN填充缺失位置。可以使用DataFrame的fillna方法处理缺失值:

import pandas as pd

data = {
  'name': ['Tom', 'Jane'],
  'age': [20, 22, 24]
}

df = pd.DataFrame(dict([(k, pd.Series(v)) for k, v in data.items()]))
print(df)

# 填充缺失值

df_filled = df.fillna(method='ffill')  # 向前填充
print(df_filled)

这帮助保持数据完整性,确保数据框中缺失部分处理得当。