MENU

雑蚘🐌Pandasから🧊Polarsに浮気しおみた話 #python

  • URLをコピヌしたした

 

こんにちは、䞀応デヌタサむ゚ンティストっぜい仕事をしおいたす、ねこです✚

今日は珍しく仕事の話をしおみようかな〜ず思いたす🐟

 

最近仕事でPolarsを䜿う機䌚が倚く、Pandasず䌌おるけど、䜿甚感で違う所もたくさんあるなず感じたした。


Polarsが出おからたあたあ経っおるので今曎感はあるんですが、今回は私なりに䜿っおみおどうだったかの感想をたずめおみたす。

 

🐌 Pandasずは🧊 Polarsずは

ざっくり蚀うず、どちらも「デヌタフレヌム」衚圢匏のデヌタを扱うためのPythonラむブラリです。

  • Pandasずっず昔からある王道ラむブラリ。ExcelずかCSVの凊理、デヌタの集蚈・敎圢、グラフ䜜りにも䜿われおたす。
  • Polars最近泚目されおる新しめのラむブラリ。Rustベヌスで動䜜がずっおも速いのが特城。

私は最初ず〜っずPandasばかり䜿っおいたんですけど、職堎でPolarsを䜿っおいる方が倚くオススメされたこずをきっかけに浮気しおみお、「あ、なんかサクサクしおお気持ちいい 」っおなっおしたいたした笑

 

䟋1読み蟌みの速さがすごい䜓感3倍速

ある日、100MBくらいのCSVファむルを読み蟌んで加工しおたら、Pandasだず3〜4秒くらいかかっおたした。

で、詊しにPolarsで読み蟌んでみたら、なんず1秒以䞋

たった数秒皋床ですが、これよりもっず倧芏暡デヌタだず数十分単䜍の時間の節玄になるこずも。

# Pandas
import pandas as pd
df = pd.read_csv("bigdata.csv")
# Polars
import polars as pl
df = pl.read_csv("bigdata.csv")

 

基本的な語法はPandasず倉わらないです。

たた、ChatGPTでも曞き換えはほが正確にしおくれるぐらいの粟床なので、既存のPandasコヌドをPolarsに倉換したい堎合も容易でした。

 

䟋2groupby集蚈がスッキリ曞ける

デヌタ分析でよく䜿うのが「グルヌプごずの平均」ずか「合蚈倀」みたいな凊理ですよね。
Pandasでもできるけど、ちょっず曞き方が耇雑に感じるこずがあっお 

# Pandas
df.groupby("category")["sales"].sum().reset_index()
# Polars
df.groupby("category").agg(pl.col("sales").sum())

Polarsはこの .agg() がずっおもわかりやすくお、個人的には奜きです。
集蚈が増えおも読みやすさが倉わらない感じ。

# 耇数集蚈の䟋Polars
df.groupby("category").agg([
pl.col("sales").mean(),
pl.col("sales").max()
])

 

芋た目がスッキリしおお、今なにやっおるかが目に入りやすいです。

 

䟋3メモリが軜い感じがする

これは「䜓感」でしかないのですが、Polarsを䜿っおるずメモリ䜿甚量が抑えられおるように感じたす。
叀いノヌトパ゜コンで䜜業しおるず、Pandasだずちょっず重たくなっちゃう堎面でも、Polarsは軜快に動いおくれたした。

特に、「デヌタをコピヌしない」挙動がデフォルトなので、䜕床も倉数に入れたりするコヌドでもメモリ消費が抑えられるこずが倚い気がしたす。
ただ、これには泚意点もあっお、意図せず元デヌタが曞き換わっおしたうこずもあるので、慣れるたでは慎重に䜿うのがおすすめです。

 

 

ずはいえPandasも倧奜きです

ここたでPolars寄りの話をしおきたしたが、PandasにはPandasの良さがあるのも事実です。

  • 可芖化ラむブラリずの盞性がいいSeabornやMatplotlibずか

  • 孊習教材やサンプルコヌドが豊富で、困ったずきに怜玢しやすい

  • Jupyter Notebookずの組み合わせがめちゃくちゃ䜿いやすい

あず、デヌタ量が少ない・軜い凊理ならPandasで党然問題ないですし、曞きやすさや芪しみやすさではやっぱりPandasが定番だな〜っお思いたす。
Polarsはちょっず慣れが必芁なので、「䞡方䜿い分ける」のが今の私のスタむルです。

 

たずめ䜿い分けが重芁かな

今回はデヌタサむ゚ンティスト的な芖点から、PandasずPolarsの䜿甚感の違いに぀いお曞いおみたした。

どっちが正解ずかじゃなくお、「どういうずきに、どっちが気持ちよく䜿えるか」で郜床遞ぶのがいいかなず思っおいたす。


私の堎合は、

  • 軜い前凊理や可芖化 → Pandas

  • 倧量デヌタの前凊理や集蚈 → Polars

っおいう感じで遞んでたす。

 

前凊理のそれぞれのテクニックに関しおは、こちらの本がずおも参考になりたした。

Polarsの解説曞がただただ少ない䞭でかなり有益な情報があったず感じたす。私の職堎のデヌタサむ゚ンティストの方もみんな持っおたした

 

 

そしお、うしろで静かに寝おるうちの猫さんたちは、ツヌルが䜕かなんお気にせず、ただキャットタワヌの寝心地を楜しんでいるのでした・・・😞

たたにはゆずっお
よかったらシェアしおね
  • URLをコピヌしたした
目次