掌握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库数据处理的资料请关注脚本之家其它相关文章!

相关文章

  • pyhthon绘制超炫酷的心形线星形线摆线

    pyhthon绘制超炫酷的心形线星形线摆线

    这篇文章主要为大家介绍了如何用pyhthon绘制各种超炫酷的摆线,本文主要实现了心形线和星形线也就是外摆线和内摆线两种,有需要的朋友可以借鉴参考下
    2021-10-10
  • python tkinter Entry控件的焦点移动操作

    python tkinter Entry控件的焦点移动操作

    这篇文章主要介绍了python tkinter Entry控件的焦点移动操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • 如何利用python实现图片批处理

    如何利用python实现图片批处理

    这篇文章主要给大家介绍了关于如何利用python实现图片批处理的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • NumPy双曲函数与集合操作详解

    NumPy双曲函数与集合操作详解

    NumPy 提供了 sinh()、cosh() 和 tanh() 等 ufunc,它们接受弧度值并生成相应的双曲正弦、双曲余弦和双曲正切值,我们可以使用 NumPy 的 unique() 方法从任何数组中找到唯一元素,本文给大家详细介绍了NumPy双曲函数与集合操作,需要的朋友可以参考下
    2024-06-06
  • Python批量解压文件中出现中文乱码的原因及解决方法

    Python批量解压文件中出现中文乱码的原因及解决方法

    这篇文章主要给大家记一次Python批量解压文件遇中文乱码及解决过程,文中有详细的图解及代码示例,具有一定的参考价值,需要的朋友可以参考下
    2023-08-08
  • Python实现扫描局域网活动ip(扫描在线电脑)

    Python实现扫描局域网活动ip(扫描在线电脑)

    这篇文章主要介绍了Python实现扫描局域网活动ip(扫描在线电脑),本文直接给出实现代码,需要的朋友可以参考下
    2015-04-04
  • Python实现简单的可逆加密程序实例

    Python实现简单的可逆加密程序实例

    这篇文章主要介绍了Python实现简单的可逆加密程序,实例分析了Python实现可逆加密的原理与相关技巧,非常具有实用价值,需要的朋友可以参考下
    2015-03-03
  • OpenCV半小时掌握基本操作之图像基础操作

    OpenCV半小时掌握基本操作之图像基础操作

    这篇文章主要介绍了OpenCV基本操作之图像基础操作,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • 一文实现删除numpy数组中的指定索引元素

    一文实现删除numpy数组中的指定索引元素

    在Python中,Numpy是一个强大的数学库,用于处理大型多维数组和矩阵的数学运算,数组是由相同类型的数据元素组成的集合,并且每个元素都可以通过索引进行访问,本文将给大家介绍如何删除numpy数组中的指定索引元素,需要的朋友可以参考下
    2024-05-05
  • Python读写常用数据文件的示例详解

    Python读写常用数据文件的示例详解

    Python 提供了多种强大的工具和库,可以轻松实现对各种类型文件的读写操作,本文为大家整理了Python读写常用的那些数据文件的方法,希望对大家有所帮助
    2025-01-01

最新评论