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

如何将Pandas DataFrame指定两列转换为Python字典?

将Pandas DataFrame的两列转换为指定格式的字典

假设我们有如下的Pandas DataFrame:

import pandas as pd

data = {
    'ID': ['A', 'A', 'B', 'B', 'C', 'D', 'D', 'D'],
    'Subject': ['Elec202', 'Comp101', 'E2', 'Comp222', 'Comp123', 'E1', 'Elec102', 'Comp295'],
    'Reference': [23232, 12456, 54235, 56654, 54467, 21345, 85464, 23438]
}
df = pd.DataFrame(data)

要将其中的ID和Subject两列转换为目标格式的字典,可通过以下方式实现:

方法一:生成元组值的字典

通过groupby分组后,将每组的Subject转为元组再转成字典:

subject_details = df.groupby('ID')['Subject'].apply(tuple).to_dict()

执行结果:

{"A": ("Elec202", "Comp101"),
 "B": ("E2", "Comp222"),
 "C": ("Comp123",),  # 单元素元组形式
 "D": ("E1", "Elec102", "Comp295")
}

方法二:匹配期望的单元素格式

如果希望单个Subject的条目是字符串而非单元素元组,可添加逻辑判断:

subject_details = df.groupby('ID')['Subject'].apply(lambda x: tuple(x) if len(x) > 1 else x.iloc[0]).to_dict()

此时结果完全符合需求:

{"A": ("Elec202", "Comp101"),
 "B": ("E2", "Comp222"),
 "C": "Comp123",
 "D": ("E1", "Elec102", "Comp295")
}

代码说明

  • groupby('ID')['Subject']:按ID列分组,仅保留Subject列数据
  • apply(tuple)/自定义lambda:将每组内的Subject值转换为元组(或单个字符串)
  • to_dict():将分组结果转换为以ID为键、对应Subject集合为值的字典

内容的提问来源于stack exchange,提问作者B A C H A S H

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 20:55:18