(目前实测在数量较少的数据集上modin的表现并不如人意)
Pandas是单核的,所以我无法使用我主机上24核的CPU。
有没有一种办法,可以简单易行地提升Pandas的效率而不大幅更改我的代码?
Modin
Modin官方传送门:https://github.com/modin-project/modin
简单地介绍一下Modin是如何通过多进程调度来提升Pandas的效率的:
你可以简单地把Modin理解为 Pandas + Multiprocessing, Modin将多进程运行Pandas的过程简化并封装,保留了和原来完全相同的API,这样子你就可以通过多核来运行Pandas但不需要更改代码。
import pandas as pd
import modin.pandas as pd
Modin通过Dask或是Ray(两种任务调度平台)来分配Pandas的任务。
例如,在读取文件时,Pandas是整体读取,但是Modin是把文件分割以后把任务丢给一个个的核心,然后不同的核心在读取之后再汇总为一个文件,通过这样的切割文件分别读取的方式来实现性能的提高。
总之,经过我自己的测试,循环拼接数据节省了一倍的时间还算是不错(毕竟除了引入方式以外没有其他改动而且可以利用更多的核心。)