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

如何高效将含重复键的Pandas DataFrame转换为值为列表的字典?

优化Pandas DataFrame转字典的高效方法

你的问题核心是避免用Python循环遍历大数据量的DataFrame——原代码里每次通过布尔索引df[df["keys"] == k]筛选数据,本质是重复遍历整个DataFrame,40万行的情况下会产生大量冗余计算,导致速度极慢。

直接用Pandas内置的groupby+apply+to_dict就能高效解决,这是矢量化操作,底层用C实现,效率比循环高几个数量级:

# 注意:如果你的DataFrame列名是示例里的"key"就用'key',如果是代码里的"keys"就替换成'keys'
my_dict = df.groupby('key')['value'].apply(list).to_dict()

执行后得到的结果完全符合你的需求:

{'a': [1, 2], 'b': [4]}

补充说明:

  • groupby('key')会按key列的唯一值分组,把相同key的value聚合到一组
  • apply(list)把每组的value转换成列表
  • to_dict()直接把分组后的Series转成目标字典格式

如果你的DataFrame里存在缺失值,还可以在apply(list)前加.dropna()过滤,比如:

my_dict = df.groupby('key')['value'].dropna().apply(list).to_dict()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 16:25:21