掌握python polars库进行高效高速的数据处理。

 更新时间:2024年01月07日 11:37:00   作者:小寒聊python  
这篇文章主要介绍了python polars库进行高效高速的数据处理技巧详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

python库polars

https://github.com/pola-rs/polars 

Polars 是一个使用 Rust 编写的高性能数据处理库,它提供了一个类似于 pandas 的 API,但专注于高效和高速的数据处理

Polars 的语法与 Pandas 非常相似,因此从一个库到另一个库的转换非常简单。

特点

  • 高性能:Polars 的底层是用 Rust 编写的,这使得它在处理大数据集时能够提供出色的性能。

  • 内存效率:它使用高效的内存管理技术,减少内存占用,特别是在处理大型数据集时。

  • 易用 API:Polars 的 API 设计类似于 pandas,这对于那些已经熟悉 pandas 的用户来说,学习成本较低。

  • 多线程和向量化操作:通过优化多线程处理和向量化操作,Polars 能够进一步提高处理数据的速度。

  • 丰富的数据操作功能:提供了广泛的数据操作功能,包括过滤、排序、分组、聚合等。

  • 矢量化查询引擎:Polars 使用 Apache Arrow(一种列式数据格式)以矢量化方式处理你的查询。

Polars 提供了两种主要的 API

DataFrame API 和 Lazy API。这两种 API 都支持丰富的数据操作功能,但它们在处理数据的方式上有所不同。

DataFrame API

  • 这是 Polars 的立即执行 API,类似于 pandas 的使用方式。

  • 当使用 DataFrame API 时,所有的数据操作(如筛选、排序、聚合)都会立即执行并返回结果。

  • 这种方式直观且易于调试,因为每个步骤的输出都可以立即查看。

  • 适用于数据集较小,或者需要立即反馈的场景。

Lazy API

  • Lazy API 基于延迟执行的概念,这意味着数据操作不会立即执行。

  • 在这种模式下,操作会被视为一系列的指令或计划,在实际需要结果时才执行。

  • 这允许 Polars 对整个操作流程进行优化,比如合并多个步骤、消除不必要的计算,从而提高整体效率。

  • Lazy API 特别适合处理大型数据集,因为它可以减少内存占用并提高性能

库的安装

我们可以直接使用 pip 来进行库的安装。

pip install polars

性能对比

首先,我们创建一个大型的虚拟数据集,它包括 100 万行和 51 列。

import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randint(0, 100, size=(1000000, 50))) 
df = df.rename(columns={i:f"x_{i} " for i in range(50)}) 
df["category"] = ["A", "B", "C", "D"] * 2500000
df.to_csv('data.csv')

加载数据集

import polars as pl 
df_pl = pl.read_csv("data.csv") 
df_pd = pd.read_csv("data.csv")

过滤操作

我们将对操作进行计时,以便我们可以比较 polars 和 Pandas 的性能。

%time df_pd_d = df[df["category"]=="D"] 
%time df_pl_d = df_pl.filter(pl.col("category")=="D")

pandas 使用的时间是 231 ms,而 polars 只需要 70.6 ms

多条件过滤

%time df_pd_d=df_pd[(df_pd["category"] == "D") & (df_pd["x_1 "] > 10)]
%time df_pl_d=df_pl.filter((pl.col("category")=="D") & (pl.col("x_1 ") > 10))

以上就是掌握python polars库进行高效高速的数据处理。的详细内容,更多关于python polars库数据处理的资料请关注脚本之家其它相关文章!

相关文章

  • Python使用cx_Oracle调用Oracle存储过程的方法示例

    Python使用cx_Oracle调用Oracle存储过程的方法示例

    这篇文章主要介绍了Python使用cx_Oracle调用Oracle存储过程的方法,结合具体实例分析了Python中通过cx_Oracle调用PL/SQL的具体步骤与相关操作技巧,需要的朋友可以参考下
    2017-10-10
  • 简单了解Python多态与属性运行原理

    简单了解Python多态与属性运行原理

    这篇文章主要介绍了简单了解Python多态与属性运行原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • Python设计模式之命令模式原理与用法实例分析

    Python设计模式之命令模式原理与用法实例分析

    这篇文章主要介绍了Python设计模式之命令模式,结合具体实例形式分析了Python命令模式相关概念、原理、定义及使用方法,需要的朋友可以参考下
    2019-01-01
  • python使用配置文件过程详解

    python使用配置文件过程详解

    这篇文章主要介绍了python使用配置文件过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • Python NLTK库全面解析及代码示例(NLP核心库)

    Python NLTK库全面解析及代码示例(NLP核心库)

    NLTK是Python中用于自然语言处理(NLP)的核心库,提供了丰富的文本处理工具、算法和语料库,下面通过实例代码场景分析给大家详细介绍Python NLTK库全面解析,感兴趣的朋友一起看看吧
    2025-06-06
  • Python中find()的用法小结

    Python中find()的用法小结

    Python中find()函数用于在字符串中查找目标字符或子字符串,并返回索引,本文就来介绍一下Python中find()的用法,具有一定的参考价值,感兴趣的可以了解一下
    2024-12-12
  • python3 QT5 端口转发工具两种场景分析

    python3 QT5 端口转发工具两种场景分析

    这篇文章主要介绍了python3 QT5 端口转发工具,功能是打开本机端口,映射到指定IP的端口,接下来通过两种场景给大家详细介绍,感兴趣的朋友一起看看吧
    2022-01-01
  • 一文详解TensorFlow与PyTorch有什么关联

    一文详解TensorFlow与PyTorch有什么关联

    TensorFlow和PyTorch是两大主流深度学习框架,而Transformer是一种革命性的神经网络架构,这篇文章主要介绍了TensorFlow与PyTorch有什么关联的相关资料,文中介绍的非常详细,需要的朋友可以参考下
    2025-12-12
  • python爬取豆瓣评论制作词云代码

    python爬取豆瓣评论制作词云代码

    大家好,本篇文章主要讲的是python爬取豆瓣评论制作词云代码,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2022-01-01
  • Python 学习教程之networkx

    Python 学习教程之networkx

    networkx是Python的一个包,用于构建和操作复杂的图结构,提供分析图的算法。对Python networkx相关知识感兴趣的朋友跟随小编一起看看吧
    2019-04-04

最新评论