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

Python中如何将pandas DataFrame按键分组生成存储多值的字典

问题原因

  • 直接用重复索引创建Series后调用to_dict()会默认保留每个键最后出现的对应值,所以会出现值覆盖
  • Series的to_dict()方法不支持'list'参数,该参数是DataFrame类to_dict()的专属合法参数,所以会触发TypeError

解决方案

方案1:所有值统一存为列表(推荐,后续处理无类型兼容问题)

先按Key分组,将同组的Value聚合为列表后再转字典:

res = df.groupby('Key')['Value'].apply(list).to_dict()

输出格式示例:

{'key1': ['value1', 'value4'], 'key2': ['value2', 'value1'], 'key3': ['value3', 'value2'], 'key5': ['value5']}

方案2:单值直接返回元素本身、多值返回列表(匹配你给出的期望输出)

在分组聚合时加长度判断即可:

res = df.groupby('Key')['Value'].apply(lambda x: x.iloc[0] if len(x) == 1 else x.tolist()).to_dict()

输出格式完全符合你的要求:

{'key1': ['value1', 'value4'], 'key2': ['value2', 'value1'], 'key3': ['value3', 'value2'], 'key5': 'value5'}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 16:15:07