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

如何简洁实现DataFrame转列表字典?现有方案求优化

简化DataFrame转标签-句子列表字典的实现方式

可以用两种更简洁高效的方法替代你当前的冗余代码:

方法一:Pandas原生分组(最简洁)

直接利用Pandas的groupby结合apply(list)和to_dict(),一步完成转换:

result = test_df.groupby('label')['sentence'].apply(list).to_dict()

逻辑说明:

  1. groupby('label'):按label列的值对DataFrame分组
  2. ['sentence'].apply(list):将每个分组内的sentence列数据转换为列表
  3. to_dict():将分组后的结果直接转为你需要的字典格式

方法二:使用defaultdict简化循环

如果更习惯用循环实现,借助collections模块的defaultdict可以避免手动判断键是否存在,一次遍历即可完成:

from collections import defaultdict

result = defaultdict(list)
for _, row in test_df.iterrows():
    result[row['label']].append(row['sentence'])

# 若需要转为普通字典而非defaultdict,执行以下操作
# result = dict(result)

逻辑说明:

  • defaultdict(list)会自动为不存在的键创建空列表,无需额外的判断逻辑
  • 仅遍历DataFrame一次,比你原来两次遍历的写法效率更高

对比原代码的优势:

你的原方案需要两次完整遍历DataFrame,代码冗余且效率较低;上述两种方法要么利用Pandas优化过的原生方法,要么仅一次遍历,代码更简洁、执行效率更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 19:57:22