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

如何将DataFrame转换为以(行索引,列名)元组为键的字典?

将DataFrame转换为以(行索引, 列名)为键的字典

方法一:使用stack() + to_dict()(推荐,效率更高)

这是Pandas内置的向量化操作,适配大多数场景,尤其适合大数据集。

  1. 构造示例DataFrame:
import pandas as pd

df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6]
}, index=['x', 'y', 'z'])
  1. 执行转换:
result_dict = df.stack().to_dict()

转换后的结果:

{('x', 'A'): 1, ('x', 'B'): 4, ('y', 'A'): 2, ('y', 'B'): 5, ('z', 'A'): 3, ('z', 'B'): 6}

原理:stack()会把DataFrame的列标签转换为行索引的二级层级,生成的Series索引就是(行索引, 列名)的元组,调用to_dict()即可直接得到目标字典。


方法二:逐行遍历(直观易懂)

如果需要自定义处理逻辑,或对Pandas内置方法不熟悉,可采用逐行遍历的方式:

result_dict = {}
# 遍历每一行的索引与行数据
for idx, row in df.iterrows():
    # 遍历每一列的列名
    for col in df.columns:
        result_dict[(idx, col)] = row[col]

这种方法逻辑清晰,但对大型DataFrame来说,效率不如stack()方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 16:45:36