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

Python-Pandas如何将DataFrame转换为双列组合元组为键的字典

问题原因

你写的代码存在两处错误:

  1. set_index方法如果要设置多重索引,需要将多个列名放在列表中作为第一个参数传入,你原写法的第二个参数'Item'实际被识别为append参数的赋值,并没有将Item列加入索引。
  2. 直接对整个DataFrame调用to_dict()会返回以列名为键的嵌套字典,不符合预期格式。

正确实现代码

costs_dictionary = df.set_index(['Firm', 'Item'])['Cost'].to_dict()

运行后得到的输出和你预期的完全一致:

{('Firm A', 'Books'): 0.55, ('Firm A', 'Pencils'): 0.6, ('Firm B', 'Books'): 0.45, ('Firm B', 'Pencils'): 0.35}

代码逻辑说明

  • 先将Firm、Item两列设置为多重行索引
  • 提取Cost列得到Series对象,对Series调用to_dict()时,默认会把行索引作为字典的键、对应数值作为字典的值,多重行索引的每个索引天然就是元组格式,和你需要的输出完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 04:45:04