如何将DataFrame的每一行转换为带列名的字典列表?
将DataFrame每行转为字典组成的列表
方法一:使用pandas内置的to_dict('records')(推荐)
这是最简洁高效的方式,pandas专门提供了这个参数来生成你需要的格式。
- 先确保导入pandas库:
import pandas as pd
- 构造你的DataFrame(如果已经有现成的可以跳过这步):
data = { 'userid': ['1', '2', '3', '4'], 'account_holder': ['Vince', 'Joana', 'Dominique', 'James'], 'broker': ['1090', '3055', '5143', '5522'], 'account_id': ['807521', '272167', '37009', '905527'] } df = pd.DataFrame(data)
- 执行转换:
result = df.to_dict('records')
运行后打印result,就能得到你想要的格式:
[{'userid': '1', 'account_holder': 'Vince', 'broker': '1090', 'account_id': '807521'}, {'userid': '2', 'account_holder': 'Joana', 'broker': '3055', 'account_id': '272167'}, {'userid': '3', 'account_holder': 'Dominique', 'broker': '5143', 'account_id': '37009'}, {'userid': '4', 'account_holder': 'James', 'broker': '5522', 'account_id': '905527'}]
方法二:手动循环实现(用于理解原理)
如果你想搞清楚底层逻辑,可以用iterrows()遍历每行,手动组装字典:
result = [] for _, row in df.iterrows(): row_dict = { 'userid': row['userid'], 'account_holder': row['account_holder'], 'broker': row['broker'], 'account_id': row['account_id'] } result.append(row_dict)
不过这种方式效率不如内置方法,数据量大的时候更明显,所以优先用第一种方法。
内容的提问来源于stack exchange,提问作者Goularts
相关产品推荐
相关产品推荐

