掌握python polars庫進行高效高速的數(shù)據(jù)處理。
python庫polars
https://github.com/pola-rs/polars
Polars 是一個使用 Rust 編寫的高性能數(shù)據(jù)處理庫,它提供了一個類似于 pandas 的 API,但專注于高效和高速的數(shù)據(jù)處理。

Polars 的語法與 Pandas 非常相似,因此從一個庫到另一個庫的轉(zhuǎn)換非常簡單。

特點
高性能:Polars 的底層是用 Rust 編寫的,這使得它在處理大數(shù)據(jù)集時能夠提供出色的性能。
內(nèi)存效率:它使用高效的內(nèi)存管理技術,減少內(nèi)存占用,特別是在處理大型數(shù)據(jù)集時。
易用 API:Polars 的 API 設計類似于 pandas,這對于那些已經(jīng)熟悉 pandas 的用戶來說,學習成本較低。
多線程和向量化操作:通過優(yōu)化多線程處理和向量化操作,Polars 能夠進一步提高處理數(shù)據(jù)的速度。
豐富的數(shù)據(jù)操作功能:提供了廣泛的數(shù)據(jù)操作功能,包括過濾、排序、分組、聚合等。
矢量化查詢引擎:Polars 使用 Apache Arrow(一種列式數(shù)據(jù)格式)以矢量化方式處理你的查詢。
Polars 提供了兩種主要的 API
DataFrame API 和 Lazy API。這兩種 API 都支持豐富的數(shù)據(jù)操作功能,但它們在處理數(shù)據(jù)的方式上有所不同。
DataFrame API
這是 Polars 的立即執(zhí)行 API,類似于 pandas 的使用方式。
當使用 DataFrame API 時,所有的數(shù)據(jù)操作(如篩選、排序、聚合)都會立即執(zhí)行并返回結果。
這種方式直觀且易于調(diào)試,因為每個步驟的輸出都可以立即查看。
適用于數(shù)據(jù)集較小,或者需要立即反饋的場景。
Lazy API
Lazy API 基于延遲執(zhí)行的概念,這意味著數(shù)據(jù)操作不會立即執(zhí)行。
在這種模式下,操作會被視為一系列的指令或計劃,在實際需要結果時才執(zhí)行。
這允許 Polars 對整個操作流程進行優(yōu)化,比如合并多個步驟、消除不必要的計算,從而提高整體效率。
Lazy API 特別適合處理大型數(shù)據(jù)集,因為它可以減少內(nèi)存占用并提高性能
庫的安裝
我們可以直接使用 pip 來進行庫的安裝。
pip install polars
性能對比
首先,我們創(chuàng)建一個大型的虛擬數(shù)據(jù)集,它包括 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')加載數(shù)據(jù)集
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庫進行高效高速的數(shù)據(jù)處理。的詳細內(nèi)容,更多關于python polars庫數(shù)據(jù)處理的資料請關注腳本之家其它相關文章!
相關文章
Python使用cx_Oracle調(diào)用Oracle存儲過程的方法示例
這篇文章主要介紹了Python使用cx_Oracle調(diào)用Oracle存儲過程的方法,結合具體實例分析了Python中通過cx_Oracle調(diào)用PL/SQL的具體步驟與相關操作技巧,需要的朋友可以參考下2017-10-10
python3 QT5 端口轉(zhuǎn)發(fā)工具兩種場景分析
這篇文章主要介紹了python3 QT5 端口轉(zhuǎn)發(fā)工具,功能是打開本機端口,映射到指定IP的端口,接下來通過兩種場景給大家詳細介紹,感興趣的朋友一起看看吧2022-01-01
一文詳解TensorFlow與PyTorch有什么關聯(lián)
TensorFlow和PyTorch是兩大主流深度學習框架,而Transformer是一種革命性的神經(jīng)網(wǎng)絡架構,這篇文章主要介紹了TensorFlow與PyTorch有什么關聯(lián)的相關資料,文中介紹的非常詳細,需要的朋友可以參考下2025-12-12

