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

优化批量将DataFrame列值插入字典键值对的高效方法

高效实现DataFrame列与对应字典的键值对插入

你的原代码存在两个关键问题:一是逻辑错误——内层循环会把每个字典和created_at列的所有值配对,最终生成60000×60000条数据,完全不符合“对应行插入”的需求;二是效率极低,两层嵌套循环的时间复杂度为O(n²),处理6万条数据会产生天文数字级的操作量。

下面是两种高效的优化方案,时间复杂度均为O(n):

方案1:zip遍历+字典拷贝

通过zip将字典列表和DataFrame的created_at列按行配对,遍历过程中复制原字典并添加新键值对:

new_dicties = []
for dic, created_at in zip(list_of_dicts, resultsDf0['created_at']):
    # 浅拷贝原字典,避免修改原列表中的字典对象
    new_dic = dic.copy()
    new_dic['created_at'] = created_at
    new_dicties.append(new_dic)

如果你的字典存在嵌套结构,可改用copy.deepcopy(dic)进行深拷贝。

方案2:列表推导式+字典解包

用列表推导式简化代码,通过字典解包创建新字典,无需显式调用copy:

new_dicties = [
    {**dic, 'created_at': created_at} 
    for dic, created_at in zip(list_of_dicts, resultsDf0['created_at'])
]

这种写法更简洁,执行效率和方案1相近。

核心优化点

  • 用zip实现两个序列的按行配对,避免嵌套循环,将时间复杂度从O(n²)降到O(n)
  • 确保每次生成新字典(或复制原字典),避免所有元素指向同一字典引用的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 07:15:32