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 json.dumps() json.dump()的区别详解

    python json.dumps() json.dump()的区别详解

    这篇文章主要介绍了python json.dumps() json.dump()的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • python数据库操作mysql:pymysql、sqlalchemy常见用法详解

    python数据库操作mysql:pymysql、sqlalchemy常见用法详解

    这篇文章主要介绍了python数据库操作mysql:pymysql、sqlalchemy常见用法,结合实例形式分析了Python mysql操作库pymysql、sqlalchemy基本使用技巧与操作注意事项,需要的朋友可以参考下
    2020-03-03
  • Django视图之ORM数据库查询操作API的实例

    Django视图之ORM数据库查询操作API的实例

    下面小编就为大家带来一篇Django视图之ORM数据库查询操作API的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • 如何使用Python编写测试脚本

    如何使用Python编写测试脚本

    这篇文章主要为大家详细介绍了Python如何通过PyCAN和CANard库实现编写测试脚本,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-02-02
  • python学习--使用QQ邮箱发送邮件代码实例

    python学习--使用QQ邮箱发送邮件代码实例

    这篇文章主要介绍了python使用QQ邮箱发送邮件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • Python机器学习之逻辑回归

    Python机器学习之逻辑回归

    这篇文章主要介绍了Python机器学习之逻辑回归,文中有非常详细的代码示例,对正在学习Python的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-05-05
  • Python中如何使用if语句处理列表实例代码

    Python中如何使用if语句处理列表实例代码

    这篇文章主要给大家介绍了关于在Python中如何使用if语句处理列表的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-02-02
  • Python编程批量实现md5加密pdf文件

    Python编程批量实现md5加密pdf文件

    这篇文章主要介绍了Python编程批量实现md5加密pdf文件,文章基于python的相关资料展开详细内容介绍,具有一定的参考价值需要的小伙伴可以参考一下
    2022-04-04
  • Python+SimpleRNN实现股票预测详解

    Python+SimpleRNN实现股票预测详解

    这篇文章主要为大家详细介绍了如何利用Python和SimpleRNN实现股票预测效果,文中的示例代码讲解详细,对我们学习有一定帮助,需要的可以参考一下
    2022-05-05
  • 简单有效上手Python3异步asyncio问题

    简单有效上手Python3异步asyncio问题

    这篇文章主要介绍了简单有效上手Python3异步asyncio问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01

最新评论