Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
PolarsとPanderaで実現する高速でロバストなデータ処理
Search
chimuichimu
March 28, 2024
6
4k
PolarsとPanderaで実現する高速でロバストなデータ処理
chimuichimu
March 28, 2024
Tweet
Share
More Decks by chimuichimu
See All by chimuichimu
書籍紹介:アジャイルなチームをつくる ふりかえりガイドブック
chimuichimu
0
66
朝 Kaggle のすすめ
chimuichimu
3
640
atmaCup#19 2nd Place Solution
chimuichimu
3
410
Wantedly Visit における相互推薦システムの活用事例
chimuichimu
1
320
データ駆動で実現する、人と企業のマッチング
chimuichimu
0
140
PydanticAI × Logfire ではじめる LLM エージェントのモニタリング
chimuichimu
3
1.3k
ウォンテッドリーの推薦システム開発を支える評価とデプロイの仕組み
chimuichimu
1
820
進化計算ライブラリ DEAP の紹介
chimuichimu
2
280
Spotify Web API を使った分析で新しいお気に入りアーティストを発見する
chimuichimu
3
290
Featured
See All Featured
Applied NLP in the Age of Generative AI
inesmontani
PRO
3
2k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.3k
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.3k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
0
22
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
270
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
200
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
320
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Tell your own story through comics
letsgokoyo
0
770
Building Adaptive Systems
keathley
44
2.9k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
65
35k
Transcript
PolarsとPanderaで実現する 高速でロバストなデータ処理 みんなのPython勉強会 #102 Mar. 28 2024 - Chiaki Ichimura
© 2024 Wantedly, Inc.
自己紹介 市村千晃 • 経歴 ◦ SE, PM, DS@SIer(2017/4 ~ 2024/2)
◦ DS@ウォンテッドリー株式会社(2024/3~) • 興味 ◦ データ分析・機械学習 ◦ 推薦システム © 2024 Wantedly, Inc. @chimuichimu1
データ分析・機械学習のフロー © 2024 Wantedly, Inc. データ処理 データ準備 分析 価値提供 評価
データ分析・機械学習のフロー © 2024 Wantedly, Inc. データ処理 データ準備 分析 価値提供 評価
データ処理における課題 • 実行時間 ◦ 処理に時間がかかり、分析のサイクルを回すボトルネックに • データ品質 ◦ 想定外のデータや意図しない処理が、誤った分析やモデルの性能劣 化につながる
• 可読性 ◦ データの内容をコードから読み取るのが難しく、処理がブラックボック ス化しがち © 2024 Wantedly, Inc.
やりたいこと データ処理を 高速かつロバストに実行したい © 2024 Wantedly, Inc.
やりたいこと データ処理を 高速かつロバストに実行したい © 2024 Wantedly, Inc. Polars Pandera
Polarsとは? • Rustで実装されたテーブルデータ処理用のライブラリ • 並列処理や遅延評価の仕組みにより高速なデータ処理を実現 © 2024 Wantedly, Inc. https://github.com/pola-rs/polars
Polarsってどれくらい早いの? © 2024 Wantedly, Inc. https://pola.rs/posts/benchmarks/
Polarsってどれくらい早いの? © 2024 Wantedly, Inc. https://pola.rs/posts/benchmarks/ Pandasが21秒かかる処理(※)を Polarsは1秒未満で実行 ※ファイル読み込み ->
結合 -> フィルタ -> 演算 -> 集約 -> ソート
Panderaとは? • テーブルデータに対するバリデーション機能を提供するライブラリ • 2024/3のリリースでPolarsのサポートを開始(注:現時点ではベータ版) © 2024 Wantedly, Inc. https://pandera--1373.org.readthedocs.build/en/1373/polars.html#polars
Panderaとは? © 2024 Wantedly, Inc. データが満たすべき性質を スキーマとしてコードに定義 (型、最大値、最小値、非null…) データがスキーマを満たすかを チェック
基本的な使い方 https://pandera--1373.org.readthedocs.build/en/1373/polars.html#polars
Panderaを使うメリット © 2024 Wantedly, Inc. 不正な値が入力されると エラーが発生 データ品質の担保 SchemaError: Column
'price' failed validator number 0: <Check in_range: in_range(5, 20)> failure cases: shape: (1, 1) 想定外のデータや 意図しない処理に気づける🙆
Panderaを使うメリット © 2024 Wantedly, Inc. 可読性の向上 どんなデータが入出力されるか?を コードから読み取れる🙆 データが満たすべき性質を スキーマとしてコードに定義
データ処理における課題 まとめ © 2024 Wantedly, Inc. 実行時間 データ品質 可読性 Polarsによる
データ処理 高速かつロバストなデータ処理を実現 Panderaによる スキーマ定義とバリデーション