python datatable库大型数据集和多核数据处理使用探索

 更新时间:2024年01月30日 11:01:51   作者:程序员小寒  
这篇文章主要介绍了python datatable库大型数据集和多核数据处理使用探索,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

python datatable库

今天给大家分享一个超强的 python 库,datatable

https://github.com/h2oai/datatable

datatable 是一个用于数据处理和统计分析的 python 库,类似于Pandas,但专注于大型数据集和多核数据处理。它最初由 H2O.ai 开发,设计目标是高效地处理非常大的数据集,特别是那些太大以至于不能放入单个机器的内存中的数据集。

核心特性

  • 性能,datatable 针对性能进行了优化,尤其是在处理大型数据集时。它使用 C++ 编写的底层代码和多线程来加速数据处理任务。

  • 内存效率,通过使用内存映射文件和其他技术,datatable 可以有效地处理大于物理内存大小的数据集。

  • 灵活的数据处理能力,支持各种数据处理操作,包括过滤、排序、分组、联接等。

  • 与Pandas的兼容性,datatable 提供了将其 DataFrame 转换为 Pandas DataFrame 的功能,使得用户可以利用 Pandas 的 API 进行进一步的数据分析和处理。

库的安装

可以直接使用 pip 进行安装。

pip install datatable

读取数据

我们所使用的数据集是贷款数据集,该文件由 226 万行和 145 列组成。

让我们将数据加载到 Frame 对象中。datatable 中分析的基本单位是 Frame。它与 pandas DataFrame 或 SQL 表的概念相同,数据排列在具有行和列的二维数组中。

import pandas as pd
import datatable as dt
%%time
datatable_df = dt.fread("test/accepted_2007_to_2018Q4.csv")

可以看到使用时间是 34.7 秒。

datatable 库的 fread() 函数可以从多个源读取数据,包括文件、URL等等。

现在,让我们计算 pandas 读取同一文件所花费的时间

%%time 
pandas_df= pd.read_csv("test/accepted_2007_to_2018Q4.csv")

可以看到使用时间是2分 30 秒。

结果表明,在读取大型数据集时,datatable 明显优于 pandas。

帧转换

现有的 Frame 也可以转换为 numpy 或 pandas 数据框,如下所示:

numpy_df = datatable_df.to_numpy() 
pandas_df = datatable_df.to_pandas()

Frame 属性

让我们看一下 datatable frame 的一些基本属性,它们类似于 pandas 的属性。

print(datatable_df.shape)       
print(datatable_df.names[:5])   
print(datatable_df.stypes[:5]) 

我们还可以使用 head 命令输出前 'n' 行。

datatable_df.head(10)

统计摘要

在 pandas 中计算统计摘要数据是一个消耗内存的过程,但在 datatable 中则不再如此。

我们可以使用 datatable 计算以下每列摘要统计信息。

datatable_df.mean()

数据处理

以下代码从数据集中选择所有行和 funded_amnt 列。

datatable_df[:,'funded_amnt']

按 funded_amnt_inv 列进行排序。

datatable_df.sort('funded_amnt_inv')

删除名为 member_id 的列。

del datatable_df[:, 'member_id']

就像 pandas 一样,datatable 也具有 groupby 功能。

让我们看看如何获得按 Grade 列分组的 funded_amount 列的平均值。

datatable_df[:, dt.sum(dt.f.funded_amnt), dt.by(dt.f.grade)] 

过滤行的语法与 GroupBy 非常相似。让我们过滤 loan_amnt 中 loan_amnt 值大于 funded_amnt 的那些行。

datatable_df[dt.f.loan_amnt>dt.f.funded_amnt,"loan_amnt"]

以上就是python datatable库大型数据集和多核数据处理使用探索的详细内容,更多关于python datatable库的资料请关注脚本之家其它相关文章!

相关文章

  • python快速查找算法应用实例

    python快速查找算法应用实例

    这篇文章主要介绍了python快速查找算法,是一个比较经典的算法应用,有一定的借鉴价值,需要的朋友可以参考下
    2014-09-09
  • python读csv文件时指定行为表头或无表头的方法

    python读csv文件时指定行为表头或无表头的方法

    这篇文章主要介绍了python读csv文件时指定行为表头或无表头的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • PyTorch中torch.matmul()函数常见用法总结

    PyTorch中torch.matmul()函数常见用法总结

    torch.matmul()也是一种类似于矩阵相乘操作的tensor连乘操作。但是它可以利用python中的广播机制,处理一些维度不同的tensor结构进行相乘操作,这篇文章主要介绍了PyTorch中torch.matmul()函数用法总结,需要的朋友可以参考下
    2023-04-04
  • Python使用Beautiful Soup包编写爬虫时的一些关键点

    Python使用Beautiful Soup包编写爬虫时的一些关键点

    这篇文章主要介绍了Python使用Beautiful Soup包编写爬虫时的一些关键点,文中讲到了parent属性的使用以及soup的编码问题,需要的朋友可以参考下
    2016-01-01
  • Python pip指定安装源的方法详解

    Python pip指定安装源的方法详解

    pip是Python包管理工具,该工具提供了对Python包的查找、下载、安装、卸载的功能,这篇文章主要给大家介绍了关于Python pip指定安装源的相关资料,需要的朋友可以参考下
    2023-12-12
  • 四种Python机器学习超参数搜索方法总结

    四种Python机器学习超参数搜索方法总结

    在建模时模型的超参数对精度有一定的影响,而设置和调整超参数的取值,往往称为调参。本文将演示在sklearn中支持的四种基础超参数搜索方法,需要的可以参考一下
    2022-11-11
  • python加密打包程序详解

    python加密打包程序详解

    这篇文章主要介绍了python加密打包程序,还给大家介绍了Python实现文件简单加解密的方法,本文通过示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2023-04-04
  • 如何利用OpenCV进行特征(颜色、形状)提取

    如何利用OpenCV进行特征(颜色、形状)提取

    特征提取是降维过程的一部分,其中原始数据的初始集被划分并减少到更易于管理的组,这篇文章主要给大家介绍了关于如何利用OpenCV进行特征(颜色、形状)提取的相关资料,需要的朋友可以参考下
    2022-05-05
  • OpenCV 图像旋转、平移、缩放操作代码

    OpenCV 图像旋转、平移、缩放操作代码

    这篇文章主要介绍了OpenCV 图像旋转、平移、缩放,本文是 OpenCV图像视觉入门之路的第7篇文章,本文详细的进行了图像的缩放 cv2.resize()、旋转 cv2.flip()、平移 cv2.warpAffine()等操作,需要的朋友可以参考下
    2022-12-12
  • python 合并文件的具体实例

    python 合并文件的具体实例

    提供了很多个文件,需要对文件分析,如果每次读取多个文件,造成很多麻烦,所以需要对源文件进行合并预处理。
    2013-08-08

最新评论