Pandas DataFrame 转换为字典的完整指南:to_dict 参数详解
本文详细介绍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转换为字典的主要方法。如需了解更多相关内容,可参考本站其他文章或继续浏览后续内容。感谢支持!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













