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

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

本文详细介绍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 相关产品和应用

全部下载

专题列表