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

如何将DataFrame转换为以ID列为键、其余列为嵌套字典的字典

Pandas DataFrame按ID列转换为行级嵌套字典实现方法

问题背景

现有结构如下的DataFrame:

IDAB
123ab
456cd

需要转换为指定格式的字典:以ID列取值作为外层字典键,外层键对应的值为嵌套字典,嵌套字典的键为其余列的列名,值为对应行的列取值,目标结构示例:

{123: {'A': 'a', 'B': 'b'}, 456: {'A': 'c', 'B': 'd'}}

直接使用mydataframe.set_index("ID").to_dict()得到的结果不符合预期,核心原因是没有指定to_dict()的转换方向参数。

正确实现代码

只需要给to_dict()传入参数orient='index'即可,完整示例:

import pandas as pd

# 构造示例DataFrame
df = pd.DataFrame({
    'ID': [123, 456],
    'A': ['a', 'c'],
    'B': ['b', 'd']
})

# 执行转换
target_dict = df.set_index("ID").to_dict(orient='index')

运行后target_dict的输出和目标结构完全一致。

原因说明

  • to_dict()方法默认的orient参数值为'dict',该模式下会以原列名作为外层字典的键,行索引作为内层字典的键,得到的结构是{'A': {123: 'a', 456: 'c'}, 'B': {123: 'b', 456: 'd'}},和需求结构层级相反。
  • 传入orient='index'时,方法会以行索引值作为外层字典的键,每一行的列名、列取值组成内层字典,正好匹配需求的结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 05:12:27