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

如何将DataFrame转换为分组为键、对应子组列表为值的Dictionary

解法

直接使用pandas的分组聚合接口就能一步完成转换,核心代码如下:

res = df.groupby('Group')['SubGroup'].agg(list).to_dict()

完整可运行示例

import pandas as pd

# 构造你提供的示例DataFrame
df = pd.DataFrame({
    'Group': ['GroupA', 'GroupA', 'GroupA', 'GroupB', 'GroupB', 'GroupC'],
    'SubGroup': ['A1', 'A2', 'A3', 'B1', 'B2', 'C1']
})

# 执行转换
target_dict = df.groupby('Group')['SubGroup'].agg(list).to_dict()
print(target_dict)

运行后输出结果和你要求的格式完全一致:
{'GroupA': ['A1', 'A2', 'A3'], 'GroupB': ['B1', 'B2'], 'GroupC': ['C1']}

逻辑说明

  • 第一步groupby('Group'):按Group列的值对数据做分组,相同Group值的行会被归为同一组
  • 第二步['SubGroup'].agg(list):提取每个分组的SubGroup列,将同组的所有值聚合为一个列表
  • 第三步to_dict():将分组聚合后的Series对象转换为字典,键为Group的取值,值为对应聚合好的SubGroup列表

你也可以把agg(list)替换为apply(list),两者在这个场景下效果一致,数据量较大时agg的执行效率更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 11:09:03