You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Pandas DataFrame每行生成带列名的命名数组?

将Pandas DataFrame每行转换为带列名的字典数组

首先得指出你代码里的小问题:iterrows()的返回顺序搞反啦!它的返回值是**(索引, 行数据)**,不是你写的(行数据, 索引),这就是你打印出Series对象的原因。

先明确你的需求:把这个DataFrame

index  a  b  c
1      2  3  4
2      3  4  5

转换成[{"a":2,"b":3,"c":4},{"a":3,"b":4,"c":5}],这里有两种简单的解决办法:

方法1:修正你的for循环

调整循环变量的顺序,然后用row.to_dict()把每行的Series转成字典,再收集到列表里:

import pandas as pd

# 先构造你的DataFrame
df = pd.DataFrame({'a': [2, 3], 'b': [3, 4], 'c': [4, 5]}, index=[1, 2])

result = []
for index, row in df.iterrows():
    result.append(row.to_dict())

print(result)

运行后就能得到你想要的输出。

方法2:更高效的内置方法

如果你的DataFrame数据量比较大,iterrows()的效率不算最优,推荐直接用Pandas的内置方法to_dict('records'),一行代码搞定:

result = df.to_dict('records')
print(result)

这个方法会直接返回每行对应的字典组成的列表,完全匹配你的需求,而且性能比手动循环好很多。

内容的提问来源于stack exchange,提问作者Apricot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 21:28:11