どこにでもいるSEの備忘録

たぶん動くと思うからリリースしようぜ

(小ネタ)pandarallelを使ってpandasのapplyを高速化する

pandasのapplyの高速化方法として、pandarallelやswifterが良さそうというのをこちらの記事を読んで知りました。

blog.ikedaosushi.com

非常に高速に処理を実行することができて良さそうだったので、使ってみたメモです。

pandarallel

Pandaral.lel provides a simple way to parallelize your pandas operations on all your CPUs by changing only one line of code. It also displays progress bars.

github.com

数行変えるだけで、pandasでの処理が高速化する便利ライブラリです。

まずはpandasでコードを書いてみる

まずは何も考えずpandasでコードを書いてみます。

もとのコードとして、テキストの形態素解析と類似度判定についてやってみたいと思います。

  1. テキストファイルをpandasに読み込む
  2. 形態素解析
  3. 適当にcos類似度を計算

って処理です。

特に文書ベクトルの取得に時間がかかっているように見えますね。 (Wall time: 48.2 s)

pandarallelを使う

今度はpandarallelを使って高速化して同じ処理を実行してみたいと思います。

Wall time: 17.1 sと出ているので、だいたい3倍位高速化したことになりますね。 多分データ量が増えるともっと差が顕著に見えると思うので、大きなサイズのデータを使用するときには使用していきたいですね。

参考文献

この記事を書くにあたり下記の文献を参考にさせていただきました。

blog.ikedaosushi.com

www.suzu6.net

感想

1時間でシュッと書いたブログなんで, こんなもんです。