提高数据处理效率,一行代码开启Pandas四倍速!


全文共4459字,预计学习时长13分钟

图源:Unsplash

虽然Pandas是Python中处理数据的库,但其速度优势并不明显。

 

如何让Pandas更快更省心呢?快来了解新库Modin,可以分割pandas的计算量,提高数据处理效率,一行代码即刻开启Pandas四倍速。

 

首先了解一些基础知识:

 

Pandas作为Python中用于处理数据的库,能简单且灵活地处理不同种类、大小的数据。除此之外,Pandas还有许多函数有助于轻松处理不同数据。

Python不同工具包的受欢迎程度。来源

但Pandas也有缺点:处理大数据集的速度非常慢。

 

在默认设置下,Pandas只使用单个CPU内核,在单进程模式下运行函数。这不会影响小型数据,因为程序员可能都不会注意到速度的变化。但对于计算量繁杂的大数据集来说,仅使用单内核会导致运行速度非常缓慢。有些数据集可能有百万条甚至上亿条数据,如果每次都只进行一次运算,只用一个CPU,速度会很慢。

 

绝大多数现代电脑都有至少两个CPU。但即便是有两个CPU,使用pandas时,受默认设置所限,一半甚至以上的电脑处理能力无法发挥。如果是4核(现代英特尔i5芯片)或者6核(现代英特尔i7芯片),就更浪费了。Pandas本就不是为了高效利用电脑计算能力而设计的。

 

新的Modin库,通过自动将计算分摊至系统所有可用的CPU,从而加速pandas处理效率。因此,Modin据说能够使任意大小的Pandas DataFrames拥有和CPU内核数量同步的线性增长。

图源:Unsplash

现在,我们一起来看看具体操作和代码的实例。

 

如何使用Modin和Pandas实现平行数据处理

 

在Pandas中,给定DataFrame,目标是尽可能以最快速度来进行数据处理。可以使用.mean()来算出每行的平均数,用groupby将数据分类,用drop_duplicates()来删除重复项,还有很多Pandas的其他内置函数以供使用。

 

之前提到,Pandas只调用一个CPU来进行数据处理。这是一个很大的瓶颈,特别是对体量更大的DataFrames,资源的缺失更加突出。

 

理论上来讲,并行计算就如同在所有可用CPU内核中的不同数据点中计算一样简单。之于Pandas DataFrame,一个基本想法就是根据不同的CPU内核数量将DataFrame分成几个不同部分,让每个核单独计算。最后再将结果相加,这在计算层面来讲,运行成本比较低。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值