加入收藏 | 设为首页 | 会员中心 | 我要投稿 周口站长网 (https://www.0394zz.cn/)- 数据采集、智能营销、经验、云计算、专属主机!
当前位置: 首页 > 大数据 > 正文

比较Pandas的数据分析工具包Datatable

发布时间:2021-06-05 14:40:01 所属栏目:大数据 来源:互联网
导读:Datatable简介 媲美pandas的数据分析工具包Datatable 为了能够更准确地构建模型,现在机器学习应用通常要处理大量的数据并生成多种特征,这已成为必要的。而 Python 的 datatable 模块为解决这个问题提供了良好的支持,以可能的最大速度在单节点机器上进行大
Datatable简介
媲美pandas的数据分析工具包Datatable
为了能够更准确地构建模型,现在机器学习应用通常要处理大量的数据并生成多种特征,这已成为必要的。而 Python 的 datatable 模块为解决这个问题提供了良好的支持,以可能的最大速度在单节点机器上进行大数据操作 (最多100GB)。datatable 包的开发由 H2O.ai 赞助,它的第一个用户是 Driverless.ai。
2.1 安装
Mac OS系统
Linux系统
安装过程需要通过二进制分布来实现
很遗憾的是,目前 datatable 包还不能在 Windows 系统上工作,但 Python 官方也在努力地增加其对 Windows 的支持。更多的信息可以查看 Build instructions 的说明。
https://datatable.readthedocs.io/en/latest/install.html
2.2 数据读取
这里使用的数据集是来自 Kaggle 竞赛中的 Lending Club Loan Data 数据集, 该数据集包含2007-2015期间所有贷款人完整的贷款数据,即当前贷款状态 (当前,延迟,全额支付等) 和最新支付信息等。整个文件共包含226万行和145列数据,数据量规模非常适合演示 datatable 包的功能。
数据集:
首先将数据加载到 Frame 对象中,datatable 的基本分析单位是 Frame,这与Pandas DataFrame 或 SQL table 的概念是相同的:即数据以行和列的二维数组排列展示。
使用datatable读取数据
这个数据集一共226万行,145列,将近1.2G的数据,通过datatable读取只用了2.54s
媲美pandas的数据分析工具包Datatable
如上所示,fread() 是一个强大又快速的函数,能够自动检测并解析文本文件中大多数的参数,所支持的文件格式包括 .zip 文件、URL 数据,Excel 文件等等。此外,datatable 解析器具有如下几大功能:
能够自动检测分隔符,标题,列类型,引用规则等。
能够读取多种文件的数据,包括文件,URL,shell,原始文本,档案和 glob 等。
提供多线程文件读取功能,以获得最大的速度。
在读取大文件时包含进度指示器。
可以读取 RFC4180 兼容和不兼容的文件。
使用pandas读取数据
!!!注意:由于数据量过大,使用pandas读取数据会经常使服务挂机,所以可以使用数据量稍小的数据集来测试
由此可以看出,结果表明在读取大型数据时 datatable 包的性能明显优于 Pandas,Pandas 需要接近30秒的时间来读取这些数据,而 datatable 只需要2秒多。
2.3 帧转换 (Frame Conversion)
对于当前存在的帧,可以将其转换为一个 Numpy 或 Pandas dataframe 的形式,如下所示:
下面,将 datatable 读取的数据帧转换为 Pandas dataframe 形式,并比较所需的时间,如下所示:
由于 Lending Club Loan Data 数据集的数据量过大,使用to_padnas操作,jupyte服务容易挂机,所以使用一个数据集较小的进行测试。
通过datatable读取数据加上将其转换为DataFrame数组,一共是2.62ms.
单通过pandas读取数据,总共需要14.4ms。
看起来将文件作为一个 datatable frame 读取,然后将其转换为 Pandas dataframe比直接读取 Pandas dataframe 的方式所花费的时间更少。因此,通过 datatable 包导入大型的数据文件再将其转换为 Pandas dataframe 的做法是个不错的主意。
2.4 帧的基础属性
下面来介绍 datatable 中 frame 的一些基础属性,这与 Pandas 中 dataframe 的一些功能类似。
也可以通过使用 head 命令来打印出输出的前 n 行数据,如下所示:
媲美pandas的数据分析工具包Datatable
注意:这里用颜色来指代数据的类型,其中红色表示字符串,绿色表示整型,而蓝色代表浮点型。
2.5 统计总结
在 Pandas 中,总结并计算数据的统计信息是一个非常消耗内存的过程,但这个过程在 datatable 包中是很方便的。如下所示,使用 datatable 包计算以下每列的统计信息:
下面分别使用 datatable 和Pandas 来计算每列数据的均值,并比较二者运行时间的差异。
Datatable读取
Pandas读取
使用 Pandas 计算时抛出内存错误的异常。

(编辑:周口站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读