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
3.4k
PolarsとPanderaで実現する高速でロバストなデータ処理
chimuichimu
March 28, 2024
Tweet
Share
More Decks by chimuichimu
See All by chimuichimu
朝 Kaggle のすすめ
chimuichimu
3
450
atmaCup#19 2nd Place Solution
chimuichimu
2
230
Wantedly Visit における相互推薦システムの活用事例
chimuichimu
1
250
データ駆動で実現する、人と企業のマッチング
chimuichimu
0
96
PydanticAI × Logfire ではじめる LLM エージェントのモニタリング
chimuichimu
3
980
ウォンテッドリーの推薦システム開発を支える評価とデプロイの仕組み
chimuichimu
1
700
進化計算ライブラリ DEAP の紹介
chimuichimu
2
140
Spotify Web API を使った分析で新しいお気に入りアーティストを発見する
chimuichimu
3
200
非競プロ勢によるUSPTOコンペ参加記
chimuichimu
2
1.6k
Featured
See All Featured
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.2k
The Cost Of JavaScript in 2023
addyosmani
49
7.7k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.7k
We Have a Design System, Now What?
morganepeng
52
7.5k
Rebuilding a faster, lazier Slack
samanthasiow
81
8.9k
Thoughts on Productivity
jonyablonski
69
4.6k
Being A Developer After 40
akosma
91
590k
Git: the NoSQL Database
bkeepers
PRO
430
65k
Become a Pro
speakerdeck
PRO
27
5.3k
How STYLIGHT went responsive
nonsquared
100
5.5k
Build The Right Thing And Hit Your Dates
maggiecrowley
35
2.7k
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による スキーマ定義とバリデーション