Polars(ソフトウェア)

データ分析用のソフトウェアライブラリ

ポラール
原作者リッチー・ヴィンク
開発者コミュニティ
リポジトリgithub.com/pola-rs/polars/
書かれたさび
オペレーティング·システムクロスプラットフォーム
タイプ技術計算
ライセンスMITライセンス
Webサイトポラ.rs

Polarsは、データ操作のためのオープンソースソフトウェアライブラリです。Polarsは、 Apache Arrow Columnar Formatをメモリモデルとして採用したRustで実装されたOLAPクエリエンジンを搭載しています。Rustで構築されていますが、Polarsを使用するためのPythonNode.jsRSQL APIインターフェースが用意されています。

2025年9月現在、Polarsの月間ダウンロード数は2,400万回を超えており[1] [2]、累計ダウンロード数は2億5,000万回を超えています。[3]

歴史

最初のコードは2020年6月23日にコミットされました。[4] Polarsは、データの整理と操作に使用されるソフトウェアツールpandasの限界に気づいたRitchie Vinkの「個人的なプロジェクト」として始まりました。Vinkは、Rustプログラミング言語で書かれたデータ処理ライブラリによってこれらの限界を解決することを目指しました。[5] [2]

リッチー・ヴィンクとチエル・ピーターズは、Xomniaで5年間共に働いた後、Polarsの開発を目的として同名の会社を共同設立しました。2023年、ヴィンクとピーターズはベインキャピタル・ベンチャーズが主導する約400万ドルのシードラウンドを成功裏に完了しました。[2] [6]

2025年9月、ヴィンクとピーターズは、アクセルが主導し、ベインキャピタルパートナーズやエンジェル投資家らとともにシリーズAラウンドで1800万ユーロ(約2100万米ドル)を調達した。 [2]

ヴィンク氏とピーターズ氏はまた、Polarsを基盤としたPolars CloudやPolars Distributedといった他のサービスも開発しました。[2]

特徴

Polarsの中核オブジェクトは、他のデータ処理ソフトウェアライブラリと同様に、DataFrameです。[7]コンテキストと式は、Polarsの構文において重要な概念です。コンテキストとは、式が評価される特定の環境のことです。一方、式とは、データ列に対して実行される計算や変換を指します。

Polars には主に 3 つのコンテキストがあります。

  • 選択: DataFrame から列を選択する
  • フィルタリング: 指定された条件を満たす行を保持して DataFrame をサブセット化する
  • グループ化/集計: データのサブグループ内の要約統計を計算する

Polarsは「データ処理タスクのための直感的で簡潔な構文」を持つように設計されました。[8]

他のデータ処理ソフトウェアと比較して

パンダと比べて

機能の違い

Polarsは単一マシンで動作するように設計されているため、類似のデータ操作ソフトウェアであるpandasとの比較が数多く行われています。[9] Polarsがpandasに対して持つ大きな利点の一つはパフォーマンスで、同様のタスクにおいてPolarsはpandasよりも5~10倍高速です。さらに、pandasはデータセットのサイズの約5~10倍のRAMを必要としますが、Polarsは2~4倍のRAMを必要とします。これらのパフォーマンス向上は、PolarsがRustで記述され、並列処理をサポートしていることによるものと考えられます。[10]

Polarsは、 PandasがEager評価(ステップを即時実行)を使用するのに対し、 Lazy評価(クエリオプティマイザがすべてのステップを確認した後、最も効率的な評価を行う)を使用するように設計されています。PandasとPolarsのデータ分析タスク実行を比較したいくつかの研究では、PolarsはPandasよりもメモリ効率が高く、「TPC-HベンチマークではPandasの63%のエネルギーしか消費せず、合成データではPandasの8分の1のエネルギーしか消費しない」ことが示されています。[11]

PolarsにはDataFrameオブジェクトのインデックスがありません。これはpandasのインデックスの使用とは対照的です。[10]

構文の違い

PolarとPandasはメソッドを使ってデータを読み込む構文は似ていますread_csv()が、ローリング平均を計算する構文は異なります。[12]

pandas を使用したコード:

pandasをpdとしてインポートする   

# データを読み込む
df_temp  =  pd . read_csv ( 
    "temp_record.csv" ,  index_col = "date" ,  parse_dates = True ,  dtype = { "temp" :  int } 
)

# データの調査
print ( df_temp . dtypes ) 
print ( df_temp . head ())

# ローリング平均を
計算するdf_temp.rolling ( 2 ) .mean ( )

Polars を使用したコード:

極性をplとしてインポート   

# データを読み込む
df_temp  =  pl . read_csv ( 
    "temp_record.csv" ,  try_parse_dates = True ,  dtypes = { "temp" :  int } 
) . set_sorted ( "date" )

# データの調査
print ( df_temp . dtypes ) 
print ( df_temp . head ())

# ローリング平均を計算する
df_temp .rolling ( " date" , period = "2d" ) .agg ( pl .mean ( " temp" ) ) 

ダスクと比較して

Daskは、NumPy、pandas、scikit-learnを用いた並列計算を行うPythonパッケージであり、メモリに収まらないほど大きなデータセットに使用されます。Polarsは単一マシンでの使用を目的とし、Daskは分散コンピューティングに適しています。[8]

DuckDBと比較して

DuckDBは、構造化データに対する効率的な分析クエリを実行するためのインプロセスSQL OLAPデータベースシステムです。DuckDBとPolarsはどちらも優れた分析性能を備えていますが、DuckDBはクエリ実行においてSQL中心であるのに対し、PolarsはPython中心です。[8]

Sparkと比較して

Apache Sparkには、分散ビッグデータ処理用のPython APIであるPySparkがあります。Daskと同様に、Sparkは分散コンピューティングに重点を置いているのに対し、Polarsは単一マシンでの使用に重点を置いています。そのため、Polarsは単一マシンでのデータ処理に有利ですが、単一マシンに収まらない大規模なデータセットにはSparkの方が適している可能性があります。[8]

参照

参考文献

  1. ^ 「PyPIダウンロード統計」. pypistats.org . 2025年9月29日閲覧
  2. ^ abcde Heim, Anna (2025年9月29日). 「オープンソースツールPolarsを開発するスタートアップがAccelから2100万ドルを調達」TechCrunch . 2025年9月29日閲覧
  3. ^ 「Pepy.tech Total downloads stats」. pepy.tech . 2025年10月1日閲覧
  4. ^ 「企業発表」www.pola.rs . 2025年5月13日閲覧
  5. ^ 「PythonとRustで最速のDataFrameライブラリの一つであるPolarsが400万ドルのシード資金を獲得 - Xomnia」2025年5月16日。 2025年5月30日閲覧
  6. ^ 「Polars DataFrameライブラリ、Bain Capital Venturesからのシード資金調達を発表」Business Wire . 2025年9月29日閲覧
  7. ^ Python、Real。「Python Polars:超高速データフレームライブラリ – Real Python」。realpython.com 。 2025年5月13日閲覧
  8. ^ abcd 「1. Polarsの紹介 - Python Polars:決定版ガイド [書籍]」O'Reilly Media . 2025年5月30日閲覧
  9. ^ 「Polars vs. pandas: What's the Difference? | The PyCharm Blog」。JetBrains Blog . 2024年7月4日. 2025年5月13日閲覧
  10. ^ ab 「Polars DataFrameライブラリの使用」. CODE . 2025年5月30日閲覧
  11. ^ Nahrstedt, Felix; Karmouche, Mehdi; Bargieł, Karolina; Banijamali, Pouyeh; Nalini Pradeep Kumar, Apoorva; Malavolta, Ivano (2024年6月18日). 「PandasとPolarsデータ分析Pythonライブラリのエネルギー使用量とパフォーマンスに関する実証的研究」. 第28回国際ソフトウェア工学評価・評価会議議事録. EASE '24. ニューヨーク州ニューヨーク: Association for Computing Machinery. pp.  58– 68. doi :10.1145/3661167.3661203. ISBN 979-8-4007-1701-7
  12. ^ 「PandasからPolarsへの移行方法 | The PyCharm Blog」。JetBrains Blog . 2024年6月19日. 2025年5月13日閲覧

さらに読む

  • ヤンセンス、ジェローン。ニュードルプ、タイス (2025)。Python Polars: 決定版ガイド(第 1 版)。オライリー。ISBN 9781098156084
  • ナラヤナン、パヴァン・クマール(2024年9月28日)「RustのPolarsを用いたデータラングリング」機械学習パイプラインのためのデータエンジニアリング、カリフォルニア州バークレー:Apress、pp.  93– 131、ISBN 979-8-8688-0601-8
  • 公式サイト
  • ユーザーガイド - Polars
  • GitHubのpolars
  • https://github.com/ddotta/awesome-polars
「https://en.wikipedia.org/w/index.php?title=Polars_(software)&oldid=1322820318」から取得