Slide 1

Slide 1 text

Polarsの現状 (2024/05/23 @Polars Data Crunch #1) 桂川大輝

Slide 2

Slide 2 text

自己紹介 ● 名前:桂川大輝(GitHub:daikikatsuragawa[1]) ● 職業:機械学習エンジニア/サーバーサイドエンジニア ● Polars[2]歴:5ヶ月 2 [1] daikikatsuragawa (Daiki Katsuragawa)(https://github.com/daikikatsuragawa) [2] Polars — DataFrames for the new era(https://pola.rs/)

Slide 3

Slide 3 text

Polarsを採用する意思決定は簡単ではない ● Polarsを採用する意思決定において、様々な情報に基づく検討が必要 (例:パフォーマンス、他者からの評価、他ライブラリからの対応等) 3 “Polarsの現状”の調査に基づいて、 Polarsを採用する意思決定の参考となる情報を紹介

Slide 4

Slide 4 text

Polarsを採用する意思決定は簡単ではない ● Polarsを採用する意思決定において、様々な情報に基づく検討が必要 (例:パフォーマンス、他者からの評価、他ライブラリからの対応等) 4 今回はパフォーマンス以外の観点で、 Polarsを採用する意思決定の参考となる情報を紹介 Polarsの強みであり根拠や検証が公開 [3] [3] Polars — TPCH Benchmark(https://pola.rs/posts/benchmarks/)

Slide 5

Slide 5 text

“Polarsの現状”の調査(2024/05/23時点) ● 調査①:Polarsは技術コミュニティでどのように評価されているか? ● 調査②:Polarsはどれだけのライブラリから対応されているか? ● 調査③:Polarsに関する書籍はどれだけ出版されているか? 5

Slide 6

Slide 6 text

“Polarsの現状”の調査(2024/05/23時点) ● 調査①:Polarsは技術コミュニティでどのように評価されているか? ● 調査②:Polarsはどれだけのライブラリから対応されているか? ● 調査③:Polarsに関する書籍はどれだけ出版されているか? 6

Slide 7

Slide 7 text

Polarsは技術コミュニティでどのように評価されているか? ● 動機: ○ 他者からのPolarsの評価を把握するため (他者からの評価の特徴は技術コミュニティにおける指標に影響を与える) ● 調査方法: ○ GitHubのリポジトリの累積スター数の推移 (GitHub REST API[4]により取得したデータから集計) ○ Qiitaのタグの概要、月間記事数および総いいね数と平均いいね数の推移 (Qiita API[5]により取得により取得したデータから集計) ● 備考: ○ データフレームのデファクトスタンダードである pandas[6]と比較 7 [4] GitHub REST API に関するドキュメント - GitHub Docs(https://docs.github.com/ja/rest?apiVersion=2022-11-28) [5] Qiita API v2ドキュメント - Qiita Developer(https://qiita.com/api/v2/docs) [6] pandas - Python Data Analysis Library(https://pandas.pydata.org)

Slide 8

Slide 8 text

Polarsは技術コミュニティでどのように評価されているか? 8 直近のスター数はpandasの63%ほどであり、 Polarsへの関心は急速に高まっている ※GitHub REST APIの仕様により 40,000件以降のスター履歴については取得できないため補完

Slide 9

Slide 9 text

Polarsは技術コミュニティでどのように評価されているか? ● Qiitaにおけるタグの概要(2024/05/23時点) 9 タグ 記事数 フォロワー数 pandas 3,451 983 Polars 69 43 pandasに及ばないが、 Polarsのタグの記事数やフォロワー数も増加しつつある

Slide 10

Slide 10 text

Polarsは技術コミュニティでどのように評価されているか? 10 pandasに及ばないが、 Polarsのタグの記事数も増加しつつある

Slide 11

Slide 11 text

Polarsは技術コミュニティでどのように評価されているか? 11 Polarsの記事への総いいね数は、 pandasの記事に近いあるいは時に超えることがある

Slide 12

Slide 12 text

Polarsは技術コミュニティでどのように評価されているか? 12 Polarsの記事への平均いいね数は、 pandasの記事に近いあるいは時に超えることがある

Slide 13

Slide 13 text

Polarsは技術コミュニティでどのように評価されているか? 13 Polarsの記事への総ストック数は、 pandasの記事に近いあるいは時に超えることがある(おおよそいいね数と同様)

Slide 14

Slide 14 text

Polarsは技術コミュニティでどのように評価されているか? 14 Polarsの記事への平均ストック数は、 pandasの記事に近いあるいは時に超えることがある(おおよそいいね数と同様)

Slide 15

Slide 15 text

Polarsは技術コミュニティでどのように評価されているか? ● 動機: ○ 他者からのPolarsの評価を把握するため (他者からの評価の特徴は技術コミュニティにおける指標に影響を与える) ● 調査方法: ○ GitHubのリポジトリの累積スター数の推移 (GitHub REST API[4]により取得したデータから集計) ○ Qiitaのタグの概要、月間記事数および総いいね数と平均いいね数の推移 (Qiita API[5]により取得により取得したデータから集計) ● 備考: ○ データフレームのデファクトスタンダードである pandas[6]と比較 15 近年で高く評価されつつある (ただしpandasの壁は高い)

Slide 16

Slide 16 text

“Polarsの現状”の調査(2024/05/23時点) ● 調査①:Polarsは技術コミュニティでどのように評価されているか? ● 調査②:Polarsはどれだけのライブラリから対応されているか? ● 調査③:Polarsに関する書籍はどれだけ出版されているか? 16

Slide 17

Slide 17 text

Polarsはどれだけのライブラリから対応されているか? ● 動機: ○ 他のライブラリとどれだけ円滑な連携が可能か(互換性)を把握するため ○ ライブラリから対応するだけの評価を受けているかを把握するため ● 調査方法: ○ 各ライブラリのドキュメントおよび GitHubリポジトリを調査 ● 備考: ○ ここでの“対応”はPolarsのデータフレームの入力が可能あるいは、 内部でPolarsのデータフレームとして扱っている(活用している)こと ○ Polarsに対応していないが pandasに対応しているライブラリに対して、 Polarsのto_pandas[7]というメソッドによる変換により連携が可能(リスクはない) 17 [7] polars.DataFrame.to_pandas — Polars documentation (https://docs.pola.rs/py-polars/html/reference/dataframe/api/polars.DataFrame.to_pandas.html#polars-dataframe-to-pandas)

Slide 18

Slide 18 text

Polarsはどれだけのライブラリから対応されているか? ● Polarsのへの対応あるい検討が進んでいるライブラリ(2024/05/23時点) 18 カテゴリ ライブラリ GitHubのスター数 (2024/05/23時点) 機械学習 scikit-learn[8] 58.4k 機械学習 LightGBM[9] 16.1k [8] Version 1.4 — scikit-learn 1.4.2 documentation(https://scikit-learn.org/stable/whats_new/v1.4.html#dataframe-support) [9] [python-package] Adding support for polars for input data · Issue #6204 · microsoft/LightGBM(https://github.com/microsoft/LightGBM/issues/6204) 主要なライブラリにおいて対応あるい検討が進んでいる

Slide 19

Slide 19 text

Polarsはどれだけのライブラリから対応されているか? ● Polarsのへの対応あるい検討が進んでいるライブラリ(2024/05/23時点) 19 カテゴリ ライブラリ GitHubのスター数 (2024/05/23時点) 可視化 Matplotlib[10] 19.4 可視化 seaborn[11] 12k 可視化 Plotly[12] 15.4k [10] Visualization - Polars user guide(https://docs.pola.rs/user-guide/misc/visualization/#matplotlib) [11] Visualization - Polars user guide(https://docs.pola.rs/user-guide/misc/visualization/#seaborn) [12] Visualization - Polars user guide(https://docs.pola.rs/user-guide/misc/visualization/#plotly) 主要なライブラリにおいて対応あるい検討が進んでいる

Slide 20

Slide 20 text

Polarsはどれだけのライブラリから対応されているか? ● Polarsのへの対応あるい検討が進んでいるライブラリ(2024/05/23時点) 20 カテゴリ ライブラリ GitHubのスター数 (2024/05/23時点) データバリデーション pandera[13] 3.1k ウェブアプリケーション Streamlit[14] 32.3k [13] Data Validation with Polars - pandera documentation(https://pandera.readthedocs.io/en/latest/polars.html#data-validation-with-polars) [14] Streamlit(https://roadmap.streamlit.app/#4ea40219) 主要なライブラリにおいて対応あるい検討が進んでいる

Slide 21

Slide 21 text

Polarsはどれだけのライブラリから対応されているか? ● 動機: ○ 他のライブラリとどれだけ円滑な連携が可能か(互換性)を把握するため ○ ライブラリから対応するだけの評価を受けているかを把握するため ● 調査方法: ○ 各ライブラリのドキュメントおよび GitHubリポジトリを調査 ● 備考: ○ ここでの“対応”はPolarsのデータフレームの入力が可能あるいは、 内部でPolarsのデータフレームとして扱っている(活用している)こと ○ Polarsに対応していないが pandasに対応しているライブラリに対して、 Polarsのto_pandas[7]というメソッドによる変換により連携が可能(リスクはない) 21 近年で様々な主要なライブラリにおいて対応あるい検討が進んでいる [7] polars.DataFrame.to_pandas — Polars documentation (https://docs.pola.rs/py-polars/html/reference/dataframe/api/polars.DataFrame.to_pandas.html#polars-dataframe-to-pandas)

Slide 22

Slide 22 text

“Polarsの現状”の調査(2024/05/23時点) ● 調査①:Polarsは技術コミュニティでどのように評価されているか? ● 調査②:Polarsはどれだけのライブラリから対応されているか? ● 調査③:Polarsに関する書籍はどれだけ出版されているか? 22

Slide 23

Slide 23 text

Polarsに関する書籍はどれだけ出版されているか? ● 動機: ○ Polarsという技術の学習に役立つ 体系的な手段としての書籍の出版状況を把握するため ● 調査方法: ○ ウェブ検索による調査 ● 備考: ○ 現時点での出版予定の書籍も対象 23

Slide 24

Slide 24 text

Polarsに関する書籍はどれだけ出版されているか? ● Polarsに関する出版済みおよび出版予定の書籍(2024/05/23時点) 24 書籍名 言語 発売日 改訂新版 前処理大全 〜SQL/pandas/Polars実践テクニック[15] 日本語 2024/05/22 Polarsに関する日本語の書籍は1冊が出版済み [15] 改訂新版 前処理大全〜 SQL/pandas/Polars実践テクニック:書籍案内|技術評論社( https://gihyo.jp/book/2024/978-4-297-14138-7)

Slide 25

Slide 25 text

Polarsに関する書籍はどれだけ出版されているか? ● Polarsに関する出版済みおよび出版予定の書籍(2024/05/23時点) 25 書籍名 言語 発売日 Polars Cookbook: Over 70 practical recipes to transform, manipulate, and analyze your data using Python Polars[16] 英語 2024/11/28 Python Polars: The Definitive Guide: Transforming, Analyzing, and Visualizing Data with a Fast and Expressive Dataframe API[17] 英語 2025/04/29 Polarsに関する英語の書籍は2冊が出版予定 [16] Amazon | Polars Cookbook: Over 70 practical recipes to transform, manipulate, and analyze your data using Python Polars | Kakegawa, Yuki | Data & Information Visualization(https://www.amazon.co.jp/Polars-Cookbook-practical-transform-manipulate/dp/1805121154) [17] Amazon | Python Polars: The Definitive Guide: Transforming, Analyzing, and Visualizing Data with a Fast and Expressive Dataframe API | Janssens, Jeroen, Nieuwdorp, Thijs | Python(https://www.amazon.co.jp/Python-Polars-Definitive-Transforming-Visualizing/dp/1098156080/)

Slide 26

Slide 26 text

Polarsに関する書籍はどれだけ出版されているか? ● 動機: ○ Polarsという技術の学習に役立つ 体系的な手段としての書籍の出版状況を把握するため ● 調査方法: ○ ウェブ検索による調査 ● 備考: ○ 現時点での出版予定の書籍も対象 26 近年で少しずつ冊数は増加しつつある (日本語の書籍は1冊が出版済み、英語の書籍は2冊が出版予定)

Slide 27

Slide 27 text

まとめ ● “Polarsの現状”の調査(2024/05/23時点)に基づいて、 Polarsを採用する意思決定の参考となる情報を紹介 ● 調査①:Polarsは技術コミュニティでどのように評価されているか? ○ 近年で高く評価されつつある (ただしpandasの壁は高い) ● 調査②:Polarsはどれだけのライブラリから対応されているか? ○ 近年で様々な主要なライブラリにおいて対応あるい検討が進んでいる ● 調査③:Polarsに関する書籍はどれだけ出版されているか? ○ 近年で少しずつ冊数は増加しつつある (日本語の書籍は1冊が出版済み、英語の書籍は 2冊が出版予定) 27