LoginSignup
1
0

Google ColabratoryでPandasを高速化させる

Posted at

pandasでvalue_coutnsを4万行に適応しようとしたら5時間かかる見込みになったので、どうにか高速化できないかと思い調べたらcuDFというものがありました。

cuDFとは、NVIDIAが開発したオープンソースのデータ分析と機械学習のためのプラットフォーム(RAPIDS)から提供されています。Pandasに似たAPIを提供するGPU上で動作するデータフレームライブラリで、データの操作や変換を高速に行うことができます。

結果として、5時間が15分に短縮できました✌️

実行方法

Colaboratoryを開き、「編集」 > 「ノートブックの設定」からGPUを選択します。

image.png

次にcuDFをインストールします。

!pip install cudf-cu11 --extra-index-url=https://pypi.nvidia.com

実行結果にErrorが出ますが、気にせずランタイムの再起動をします。
再起動は「ランタイム」 > 「ランタイムの再起動」からできます。

import cudf
cudf = cudf.from_pandas(df)

これでデータフレームをcuDFに変換できます。

あとはこのcudfで操作を実行することで爆速実行できます。

ほとんどpandasと同じように操作できますが、一部互換性のないところもあるので適宜コードを改変する必要があります。

進捗状況の確認

from tqdm.notebook import tqdm
tqdm.pandas()

for i in tqdm(100, total=100):
    # ここにpandasの処理

tqdmを使うことでプログレスバーを表示できます。おおよその終了時間も出るので、実行時間の目安になります。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0