インストール
Polars はライブラリであり、インストールは対応するプログラミング言語のパッケージマネージャーを呼び出すだけで簡単です。
pip install polars
# Or for legacy CPUs without AVX2 support
pip install polars-lts-cpu
cargo add polars -F lazy
# Or Cargo.toml
[dependencies]
polars = { version = "x", features = ["lazy", ...]}
Big Index
デフォルトでは、Polars は 2^32 行(~42億行)に制限されています。この制限を 2^64 行(~18千兆行)まで増やすには、big index を有効にする必要があります:
pip install polars-u64-idx
cargo add polars -F bigidx
# Or Cargo.toml
[dependencies]
polars = { version = "x", features = ["bigidx", ...] }
レガシーな CPU
AVX をサポートしていない古い CPU でPolarsをインストールするには:
pip install polars-lts-cpu
インポート
ライブラリを使用するには、プロジェクトにインポートする必要があります。
import polars as pl
use polars::prelude::*;
Feature Flags
上記のコマンドを使用すると、Polars のコアな機能がシステムにインストールされます。ただしユースケースによっては、オプションの依存関係もインストールしたい場合があります。これらは最小限のフットプリントを維持するために省略可能になっています。フラグはプログラミング言語によって異なります。ユーザーガイドを通して、追加の依存関係を必要とする機能が使われる場合は言及します。
Python
# For example
pip install 'polars[numpy,fsspec]'
| Tag | Description |
|---|---|
| all | すべてのオプション(以下のすべて)の依存関係をインストールします |
| pandas | Pandas の DataFrame や Series との相互変換のために Pandas と一緒にインストールします |
| numpy | numpy 配列との相互変換のために numpy と一緒にインストールします |
| pyarrow | PyArrow を使ってデータ形式を読み込みます |
| fsspec | リモートファイルシステムからの読み込みをサポートします |
| connectorx | SQL データベースからの読み込みをサポートします |
| xlsx2csv | Excel ファイルからの読み込みをサポートします |
| deltalake | Delta Lake テーブルからの読み込みをサポートします |
| plot | DataFrame のプロットをサポートします |
| timezone | タイムゾーンをサポートします。Python 3.9 未満、またはWindowsの場合にのみ必要です。それ以外の場合は依存関係はインストールされません。 |
Rust
# Cargo.toml
[dependencies]
polars = { version = "0.26.1", features = ["lazy", "temporal", "describe", "json", "parquet", "dtype-datetime"] }
オプションの機能は以下の通りです:
- 追加のデータ型:
dtype-datedtype-datetimedtype-timedtype-durationdtype-i8dtype-i16dtype-u8dtype-u16dtype-categoricaldtype-struct
lazy- Lazy APIregex- カラム選択で正規表現を使う。dot_diagram- 遅延論理計画からドット図を作成。
sql- SQL クエリを Polars に渡す。streaming- RAM よりも大きいデータセットを処理できるようになる。random- 値がランダムにサンプリングされた配列を生成。ndarray-DataFrameをndarrayに変換。temporal- 時間データ型のChronoと Polars の間の変換。timezones- タイムゾーンのサポートを有効化。strings-StringChunkedのための追加の文字列ユーティリティ。string_pad-pad_start,pad_end,zfillstring_to_integer-parse_int
object-ObjectChunked<T>(Tに対しジェネリック)と呼ばれるジェネリックな ChunkedArrays に対するサポート これらは Any トレイトを通じてSeries からダウンキャストが可能。- パフォーマンスに関連するもの:
nightly- SIMD や Specialization のような最新ビルドのみの機能を有効化。performant- より高速なパスを行うが、コンパイル時間が遅くなる。bigidx- 2^32行を大幅に超えることが予想される場合はこの機能を有効化。 インデックスにu64を使うことで、はるかに大規模なデータセットにスケールアップが可能。 この機能を有効にすると、多くのデータ構造がキャッシュ効率が低下するため、 Polarsのパフォーマンスが少し低下する。cse- 共通部分式除去の最適化を有効化。
-
IO に関するもの:
-
サポートする圧縮形式:
- zip
- gzip
-
DataFrameの操作:dynamic_group_by- 事前に定義されたキーではなく、時間窓に基づいてグループ化。 ローリング窓のグループ化操作も有効化。sort_multiple- 複数カラムのDataFrameのソートを許可。rows- 行からDataFrameを作成し、DataFrameから行を抽出。 またpivotとtransposeの操作も有効化。join_asof- 完全一致ではなく、最近傍のキーで結合する Join ASOF を提供。cross_join- 2つの DataFrame のデカルト積を作成semi_anti_join- SEMI JOIN と ANTI JOIN を提供。row_hash- DataFrame の行を UInt64Chunked にハッシュする機能diagonal_concat- 異なるスキーマの DataFrame を対角方向に結合。dataframe_arithmetic- (DataFrame と DataFrame)や(DataFrame と Series)の演算partition_by- グループごとに DataFrame を複数に分割
Series/エクスプレッション の操作:is_in-Seriesのメンバーシップをチェックしますzip_with- 2つの Series/ ChunkedArrays を zip 化しますround_series-Seriesの浮動小数点型を丸める。repeat_by- 別の配列で指定された回数だけ要素を繰り返する。is_first_distinct- 要素が最初の一意の値かどうかをチェック。is_last_distinct- 要素が最後の一意の値かどうかをチェック。checked_arithmetic- 無効な演算にNoneを返す検査付き演算。dot_product-Seriesとエクスプレッションの内積。concat_str- 線形時間での文字列データの連結。reinterpret- 符号付き/符号なしへのビット再解釈ユーティリティtake_opt_iter-SeriesからIterator<Item=Option<usize>>を取得するmode- 最も頻出する値(または複数の値)を返しますcum_agg- cum_sum、cum_min、cum_max といった集約。rolling_window- ローリング平均などのローリング窓関数interpolateNone値を補間しますextract_jsonpath- StringChunked で JSONPath クエリを実行するlist- リストのユーティリティ。list_gather複数のインデックスでサブリストを取得。rank- ランキングアルゴリズム。moment- 尖度や歪度の統計量ewma- 指数平滑移動平均の窓関数abs-Seriesの絶対値の取得arange-Seriesでの範囲操作product-Seriesの積を計算。diff-diff操作。pct_change- 変化率を計算。unique_counts- 式の一意の値をカウントする。log-Seriesの対数。list_to_struct-ListをStructデータ型に変換する。list_count- リスト内の要素をカウントする。list_eval- リスト要素に式を適用する。cumulative_eval- 累積的に増加する窓に式を適用する。arg_where- 条件を満たすインデックスを取得する。search_sorted- 順序を維持するように要素を挿入すべき位置を見つける。date_offset月や閏年を考慮して日付にオフセットを追加する。trigonometry三角関数。signSeriesの要素ごとの符号を計算する。propagate_nansNaN伝播型のmin/max集計。
DataFrameの整形出力fmt-DataFrameの書式設定を有効化する