Jupyter notebookでpandasのmap/applyメソッド進捗表示をいい感じにする


概要

  • Jupyter notebookで進捗バーをいい感じに表示するにはtqdm_notebookを呼ぶ
  • from tqdm._tqdm_notebook import tqdm_notebook で呼び出すと、
    progress_applyやprogress_mapを使える

事前準備

tqdmのインストール

pipで管理している人用

pip install tqdm

condaで管理している人用

conda install -c conda-forge tqdm

いい感じに進捗を表示する

1セル目:


import pandas as pd
import numpy as np
from tqdm._tqdm_notebook import tqdm_notebook

2セル目:


df = pd.DataFrame(np.random.randint(0, 100, (100000, 6)))

3セル目:


# プログレスバーのラベル設定
tqdm_notebook.pandas(desc="hoge progress: ")

# progress_apply/progress_mapはpandasのapply/mapメソッドと同じ動きをする
df['hoge'] = df[0].progress_apply(lambda x: x**2)

df

実行結果:

その他

tqdm_notebookのサンプルコードではforを使ったものしかなく…。
ですがこれで長時間の処理でも安心してapply/mapできますね。
もっとスマートなやり方があればコメントにて教えていただけると嬉しいです。

参考文献

Function tqdm_notebook has no attribute 'pandas' (Jupyter) #419
https://github.com/tqdm/tqdm