陶情适性
2021-08-05 17:50
采纳率: 50%
浏览 33
已结题

嵌套循环怎么加快运行速度

for i in range(8000):
        for j in range(10000):
            if bool(re.findall(a.loc[i, 'num'][:-3], b.loc[j, 'nums'])):   #判断是否包含字段
                if a.loc[i, 'num']==b.loc[j, 'nums']:  #字段名相同跳过
                    pass
                else:
                    ssn =a.loc[i, 'num'].split('_')    #以_分割字符串
                    a.loc[i, 'num'] = ssn[0] + '_' + ssn[1] + 'M_' + ssn[2] #为字段名相似的增加'M'

数据集a里面有8000条数据,数据集b里面有10000条数据,遍历这两个数据集中选出某列对比内容,想做的操作就是相似的增加一个字母。运行太慢了,已经用过numba的jit装饰器。还是慢,怎么加快,这种嵌套循环可以加线程提高运行速度吗?还是进程什么的,换成map这些的感觉太复杂,我自己想不明白怎么改,希望得到各位大能的指导。

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

2条回答 默认 最新

  • 喜欢摸鱼的程序员 2021-08-05 18:02
    最佳回答

    你这样每次循环正则+ == 判断都会使用时间耗费太多。
    转为多维数组,用pandas中内置的一些方法处理起来,效率会提升很多。

    评论
    解决 1 无用
    打赏 举报
查看更多回答(1条)

相关推荐 更多相似问题