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

如何将含两列的Pandas DataFrame转为a→b映射的字典?

将Pandas DataFrame两列转换为键值对字典的最优方案

给定如下DataFrame:

import pandas as pd
df = pd.DataFrame(data={'a':[1,3], 'b':[2,4]})

期望得到字典{1:2, 3:4},你当前用iterrows的字典推导虽然可行,但逐行遍历在大数据量下效率偏低,推荐以下两种更优方案:

方法1:设置索引后转字典(推荐)

通过将a列设为索引,直接提取b列并转换为字典,这是Pandas原生的高效实现:

result_dict = df.set_index('a')['b'].to_dict()
print(result_dict)  # 输出: {1: 2, 3: 4}

方法2:利用Python原生zip构造字典

如果偏好原生Python写法,可以用zip将两列打包为键值对,再转为字典:

result_dict = dict(zip(df['a'], df['b']))
print(result_dict)  # 输出: {1: 2, 3: 4}

性能说明

  • 原方法依赖iterrows()逐行生成Series再提取值,大数据量下性能劣势明显。
  • 上述两种方法均基于向量式操作(或原生高效迭代),执行速度远快于逐行遍历,当DataFrame行数超过万级时差异会非常显著。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 02:54:57