前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Pandas 多进程处理数据,速度快了不少!

Pandas 多进程处理数据,速度快了不少!

作者头像
用户6825444
发布2022-04-12 13:53:52
1.1K0
发布2022-04-12 13:53:52
举报
文章被收录于专栏:木下学Python木下学Python

前言

python 有自己的多进包 multiprocessing 去实现并行计算,但在 pandas 处理数据中,使用 multiprocessing 并不好使,只听见风扇转啊转,就不见运行完毕。

为了提高一点数据清洗的速度,找到一个 pandas 多进程的方法,pandarallel 库,做了一下测试。

小数据集(先试过了 1w)可能多进程还没单进程快,因为进程开启关闭也要一点时间;于是我弄了 100w 数据来测试:

利用以上数据做以下处理:

  1. 剔除 titile,comment 两列文本中的表情符号
  2. title,comment 两列做一个分词处理,覆盖原来的列

单进程

在单进程的情况下,可以看到用时 294s,接近 5min 了。

多进程

multiprocessing 多进程写法,这种写法网上一搜一大把,代码没有错,多进程任务可以执行。

例如 run_task 函数中的任务是爬虫代码时,没有什么问题,但如果是数据清洗的代码,我测试就很久都跑不出来:

接下来换成 pandas 多进程 pandarallel 的写法就可以:

可以看到改写后时间用时 154s,2min30s,比单进程快了一倍。

关于 pandarallel 可以查看文档:

https://github.com/nalepae/pandarallel/tree/v1.5.2

对应的多进程写法函数对照表,pandas 中的 apply,applymap,map 三个函数的区别,写对应的代码:

源码获取

https://blog.csdn.net/zjkpy_5/article/details/123974556?spm=1001.2014.3001.5501

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-04-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 木下学Python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
GPU 云服务器
GPU 云服务器(Cloud GPU Service,GPU)是提供 GPU 算力的弹性计算服务,具有超强的并行计算能力,作为 IaaS 层的尖兵利器,服务于深度学习训练、科学计算、图形图像处理、视频编解码等场景。腾讯云随时提供触手可得的算力,有效缓解您的计算压力,提升业务效率与竞争力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档