資料分析
polars avatar

polars

高性能 Python 與 Rust 記憶體內 DataFrame 函式庫。支援延遲計算、平行處理,並使用 Apache Arrow 引擎,適用於高效 ETL、數據處理及加速 pandas 工作流。

簡介

Polars 是一個極速、多執行緒的 DataFrame 函式庫,專為 Rust 與 Python 生態系統建構,旨在處理可放入系統記憶體內的中大型數據集。透過使用 Apache Arrow 作為核心記憶體格式並提供基於表達式的 API,Polars 為複雜數據處理提供了比 pandas 更高效的選擇。其架構透過記憶體映射、查詢優化和高效快取操作,專門針對效能進行了優化,是數據工程師與科學家處理 1GB 到 100GB 數據集時不可或缺的工具,無需處理基於磁碟的分散式系統之開銷。

該函式庫允許使用者使用立即執行模式或延遲計算框架來定義複雜的數據轉換流程。延遲 API 特別強大,因為它允許引擎在實際處理數據前執行謂詞下推、投影下推與查詢計畫優化,顯著降低了 ETL、特徵工程與探索性數據分析任務中的計算時間與記憶體消耗。

  • 基於表達式的 API:使用類似 SQL 或函數式編程的語法,實現聲明式、可組合且可串聯的轉換。

  • 延遲計算 (Lazy Evaluation):自動優化查詢計畫,向下推動過濾器或選擇,減少不必要的數據讀取。

  • 多執行緒引擎:預設並行處理所有可用 CPU 核心上的操作,效能表現遠超單執行緒函式庫。

  • 記憶體效率:基於 Arrow 記憶體模型建構,支援零複製操作並減少記憶體分配。

  • 多樣化 I/O:與 CSV、Parquet、JSON、Excel 及各種 SQL 資料庫連接器無縫整合。

  • 視窗函數:提供對複雜分析計算(如 over() 分組與滾動聚合)的進階支援。

  • 適用於希望從 pandas 遷移且需要更高效能,但無需切換至 Dask 或 Spark 等分散式工具的使用者。

  • 最適合 1GB 至 100GB 的數據集;若數據集超出 RAM 容量,請考慮使用 Dask 或 Vaex。

  • 輸入:支援本地檔案、雲端儲存路徑 (S3/GCS/Azure) 及串流數據。

  • 輸出:DataFrame 物件、已優化的查詢計畫,或直接寫入檔案/資料庫。

  • 使用技巧:處理大檔案時,優先使用 scan_ 方法(如 scan_csv)而非 read_ 方法,以充分發揮延遲計算與查詢優化的優勢。

倉庫統計

Star 數
19,721
Fork 數
2,202
Open Issue 數
42
主要語言
Python
預設分支
main
同步狀態
閒置
最近同步時間
2026年4月29日 下午02:53
在 GitHub 查看