百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

别再用Pandas处理大数据了!现在你拥有更好的选择

liuian 2025-02-15 16:31 34 浏览

全文共1584字,预计学习时长7分钟



众所周知,Pandas是最好的探索性数据分析工具之一。但它并非对于每个工作来说都是最佳选择,大数据处理就与它“气场不合”。


Pandas并不具备多处理器,并且处理较大的数据集速度很慢。笔者消耗在等待Pandas读取一堆文件或对其进行汇总计算上的时间太多太多了。最近,笔者发现了一个更好的工具可以更新数据处理管道,使这些CPU内核正常工作!


笔者使用该工具进行繁重的数据处理,例如读取包含10 G数据的多个文件,对其进行过滤并汇总。数据处理工作结束之后,再将结果保存到一个较小的适用于Pandas的CSV文件中,然后继续对Pandas进行探索性数据分析。这就方便许多啦,一起来认识认识这个新工具吧!


认识Dask


Dask提供了高级并行性的分析功能,得以拥有大规模处理数据的性能。适用于Dask的算法工具包有numpy, pandas和sklearn。


Dask是一个开源且免费的工具。它使用现有的PythonAPI和数据结构来简化在Dask支持的等效项之间的切换。它使简单的事情变得更容易,让复杂的事情变得可能。


Pandas vs Dask


来看一个实际的例子。在工作中,我们通常会得到一堆需要分析的文件。下面模拟笔者的工作日,并创建10个具有100K条目的文件(每个文件有196 MB)。


fromsklearn.datasets import make_classification
import pandas as pdfor i in range(1, 11):
    print('Generating trainset %d' % i)
    x, y =make_classification(n_samples=100_000, n_features=100)
    df = pd.DataFrame(data=x)
    df['y'] = y
    df.to_csv('trainset_%d.csv' % i,index=False)


先用Pandas读取这些文件并测算时间。Pandas不支持本地glob,因此需要循环读取文件。


%%timeimport globdf_list = []
for filename in glob.glob('trainset_*.csv'):
    df_ = pd.read_csv(filename)
    df_list.append(df_)
df = pd.concat(df_list)
df.shape


Pandas花了16秒读取文件。


CPU times: user 14.6 s, sys:1.29 s, total: 15.9 s
Wall time: 16 s


想象一下如果文件扩大100倍,Pandas可能就无能为力了,你甚至无法用Pandas读取它们。



而Dask可以处理无法读入内存的数据,它会将数据分成多个块并指定任务链。现在我们来计算一下Dask加载这些文件需要多长时间。


importdask.dataframe as dd%%time
df = dd.read_csv('trainset_*.csv')CPU times: user 154 ms, sys: 58.6 ms, total:212 ms
Wall time: 212 ms


只要154 ms! 这是怎么做到的?事实上,这个时间是不准确的。Dask延迟了执行模式。它仅在需要时才进行计算。定义执行图,Dask得以优化任务的执行,并重复该实验。此外,Dask的read_csv函数在本机使用glob。


%%timedf= dd.read_csv('trainset_*.csv').compute()CPU times: user 39.5 s, sys: 5.3 s,total: 44.8 s
Wall time: 8.21 s


计算功能强制Dask返回结果,Dask读取文件的速度是Pandas的两倍。


Pandas vs Dask CPU使用率


Dask是否用到了所提供的所有CPU核心功能?比较一下读取文件时Pandas和Dask之间的CPU使用率就知道了,看看代码是否与上面的相同。




我们可以看到,Pandas和Dask在读取文件时的多处理差异很明显。

究竟发生了什么?


Dask的数据框架由多个Pandas的数据框架组成,按索引划分。当使用Dask执行read_csv函数时,多个进程将读取一个文件,甚至能够被可视化为执行图。


exec_graph= dd.read_csv('trainset_*.csv')
exec_graph.visualize()


读取多个文件时,Dask执行速度较慢。


安装方法


要安装Dask,只需运行:


python-m pip install "dask[complete]"


Dask的缺点


既然Dask这么出色,我们能否直接用它取代Pandas呢?哪有这么简单的事儿。只有来自Pandas的某些特定功能,才能被迁移到Dask。其中一些功能很难并行化,例如排序值和在未排序的列上设置索引。


Dask也并非是万能的,用于不适合主内存的数据集是最适合它的“舞台”。Dask是建立在Pandas之上的,Pandas运行缓慢,Dask则同样运行缓慢。Dask在数据管道过程中仅仅是一个好用的工具,它不能替代其他库。



为你的工作挑选合适的工具,为你的工具寻找匹配的“舞台”,这样它才能够尽情“表演”。


留言点赞关注

我们一起分享AI学习与发展的干货

如转载,请后台留言,遵守转载规范

相关推荐

苹果怎么查询手机激活时间(苹果手机如何查询手机激活时间)
  • 苹果怎么查询手机激活时间(苹果手机如何查询手机激活时间)
  • 苹果怎么查询手机激活时间(苹果手机如何查询手机激活时间)
  • 苹果怎么查询手机激活时间(苹果手机如何查询手机激活时间)
  • 苹果怎么查询手机激活时间(苹果手机如何查询手机激活时间)
免费手机模拟器(免费手机模拟器下载)

目前能成功在电脑上模拟苹果系统的iOS模拟器,对比市面上常见的安卓模拟器少太多了,主要原因还是iOS系统比较封闭,难于开发。虽然前面说开发很困难,但是国内还是有一些厉害的IT小组成功推出了iOS模拟器...

免费主题商店app下载(免费主题商店app下载苹果)
  • 免费主题商店app下载(免费主题商店app下载苹果)
  • 免费主题商店app下载(免费主题商店app下载苹果)
  • 免费主题商店app下载(免费主题商店app下载苹果)
  • 免费主题商店app下载(免费主题商店app下载苹果)
新手怎么制作word表格(工作表格制作)

步骤如下:1、本次演示使用的软件为word文字处理软件,软件版本为Microsoftoffice家庭和学生版2016。2、首先打开Excel电子表格,根据问题描述,我们在word中插入两页表格。3、...

电脑开机启动进不了系统怎么办
电脑开机启动进不了系统怎么办

一、修复错误如果频繁无法正常进入系统,则开机后马上按F8,看能否进入安全模式或最后一次配置正确模式,如能则进入后会自动修复注册表,并回忆前几次出现不正常现象时进行了什么操作,并根据怀疑是某个应用软件导致问题产生,将其卸载,然后正常退出,...

2026-01-02 13:05 liuian

win11任务栏隐藏不了(win11任务栏怎么隐藏)

方法/步骤:  1、打开电脑桌面,双击我的计算机。  2、打开控制面板。  3、点击类别切换到大图标或小图标。  4、找到通知区域图标打开。  5、选择显示图标或隐藏图标也可以仅显示通知,选好以后点击...

win10怎么打开系统更新(怎么开启windows10更新)
  • win10怎么打开系统更新(怎么开启windows10更新)
  • win10怎么打开系统更新(怎么开启windows10更新)
  • win10怎么打开系统更新(怎么开启windows10更新)
  • win10怎么打开系统更新(怎么开启windows10更新)
笔记本注册表编辑器怎么打开

你好,要打开注册表编辑器,可以按照以下步骤进行操作:1.打开“运行”对话框。可以通过按下Win+R键组合,或者在开始菜单中搜索“运行”来打开。2.在“运行”对话框中,输入“regedit”并点...

怎样查询ip地址(怎么顺着ip地址找人)

答:查看ip地址的步骤如下,1.通过网页进行查询:可以通过第三方平台进行查询。2.通过电脑内部的网络连接进行查询:首先我们点击桌面右下角的开始,在开始的选项栏当中找到运行,点击运行,然后再用新的对...

windows server 2003的应用(win2003应用程序服务器)

WindowsServer2003支持FAT16、FAT32和NTFS文件系统,同时也支持CDFS(光盘文件系统)和UDF(通用磁盘格式)。NTFS文件系统的安全性高于FAT文件系统,支持域的管理...

c盘格式化恢复软件(格式化c盘 软件)

点我名字,然后点“他的空间”,我的空间有各种恢复软件的详细介绍、下载地址以及使用说明。C盘格式化后需重装操作系统,系统装好后,要恢复其他盘的软件的话可以在格式化C盘前将桌面数据备份在其他盘,重装完成后...

u盘磁盘被写保护最简单解除方法

u盘磁盘被写保护解除方法,去掉u盘写保护可以先检查u盘写保护的按钮是否打开,然后在电脑上将u盘文件拷贝一份,接着右键点击u盘,选择属性选项,点击工具选项进入,点击开始检查选项,最后如果有问题点击修复即...

免费刷机工具(免费刷机工具哪个好用)

 刷机机灵你的安卓手机智能管家:刷机精灵软件是一款适用于Andorid设备的一键刷机软件。它能够自动安装设备驱动、自动获取ROOT权限、自动刷入ClockworkmodRecovery以完成Andr...

硬盘重新分区怎么分(硬盘重新分区后怎么装系统)

对已分区的硬盘重新分区的方法如下:1. 备份重要数据:重新分区会格式化硬盘,导致数据丢失。因此,在进行重新分区之前,需要备份重要数据。2. 进入磁盘管理工具:在Windows操...

一键ghost快捷键(1键ghost)

一、开机连续按F8,在系统启动菜单中,选择一键还原选项进行一键还原。二、制作启动盘重装操作系统。安装GHOST版本操作系统方法:1、将制作好的PE启动U盘插入电脑USB接口(台式用户建议将u盘插在主机...