Pandas DataFrame 转换为字典的完整指南:to_dict 参数详解

拾光
拾光
发布时间:2026-10-14| 4人浏览过
原创

本文详细介绍Pandas中DataFrame转换为字典的多种方法。重点解析to_dict()函数的orient参数,包括dict、list、series、split、records和index六种模式的具体输出格式与适用场景,帮助开发者根据需求选择最合适的转换方式。

DataFrame转字典的基本方法

将DataFrame转换为字典时,可以通过设置列名为字典键、将“ID”列设为索引并转置DataFrame来实现。此外,to_dict()方法支持一个名为'orient'的参数,用于控制输出格式。若不指定该参数,默认返回以索引为键、单元格值为值的字典结构(即{index: value}形式);若需获取每列的值列表,则必须显式指定orient参数。

具体操作步骤如下所示:


>>> df.set_index('ID').T.to_dict('list')
{'p': [1, 3, 2], 'q': [4, 3, 2], 'r': [4, 0, 9]}

to_dict orient参数详解

如需生成不同格式的字典,以下是各种orient参数的示例。假设存在如下简单DataFrame:


>>> df = pd.DataFrame({'a': ['red', 'yellow', 'blue'], 'b': [0.5, 0.25, 0.125]})
>>> df
        a      b
0     red  0.500
1  yellow  0.250
2    blue  0.125

各orient模式输出格式对比

根据orient参数的不同,可选的输出格式包括以下几种:

dict:默认模式。字典的键为列名,值为以索引为键、单元格值为值的字典。


>>> df.to_dict('dict')
{'a': {0: 'red', 1: 'yellow', 2: 'blue'}, 
 'b': {0: 0.5, 1: 0.25, 2: 0.125}}

list:字典的键为列名,值为该列所有数据组成的列表。


>>> df.to_dict('list')
{'a': ['red', 'yellow', 'blue'], 
 'b': [0.5, 0.25, 0.125]}

series:与'list'类似,但字典的值是Series对象而非纯列表。


>>> df.to_dict('series')

{'a': 0       red
      1    yellow
      2      blue
      Name: a, dtype: object, 
 'b': 0    0.500
      1    0.250
      2    0.125
      Name: b, dtype: float64}

split:将数据拆分为三个部分,分别对应列名(columns)、数据值(data)和索引标签(index)。


>>> df.to_dict('split')

{'columns': ['a', 'b'],
 'data': [['red', 0.5], ['yellow', 0.25], ['blue', 0.125]],
 'index': [0, 1, 2]}

records:将每一行转换为一个字典,字典的键为列名,值为该行各单元格的值。最终结果是一个字典列表。


>>> df.to_dict('records')
>
[{'a': 'red', 'b': 0.5}, 
 {'a': 'yellow', 'b': 0.25}, 
 {'a': 'blue', 'b': 0.125}]

index:类似于'records',但外层字典的键为索引标签,值为该行对应的字典。


>>> df.to_dict('index')

{0: {'a': 'red', 'b': 0.5},
 1: {'a': 'yellow', 'b': 0.25},
 2: {'a': 'blue', 'b': 0.125}}

本文介绍了Pandas DataFrame转换为字典的主要方法。如需了解更多相关内容,可参考本站其他文章或继续浏览后续内容。感谢支持!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。