進捗バーしたい(tqdm

1from tqdm import tqdm
2
3for i in tqdm(range(3)):
4   time.sleep(1)
5
6100%|██████████| 3/3 [00:03<00:00,  1.00s/it]

tqdmパッケージを使って、ループ処理中の進捗バーを表示できます。 使い方がとても簡単で、イテラブルな変数をtqdm(イテラブル)の中にいれるだけです。 大きなループを回すときに設定すると、動作していることがぱっと見てわかるため安心です。

説明したい

1for i in tqdm(range(3), desc="進行状況):
2    time.sleep(1)
3
4進行状況: 100%|██████████| 3/3 [00:03<00:00,  1.00s/it]

descオプションで、進捗バーのプレフィックスを変更できます。 ネストしたループで使うと、どのループにいるのか分かりやすくなります。

表示幅を変更したい

1for i in tqdm(range(10), ncols=80)

ncolsオプションで、表示幅を変更できます。 デフォルトはターミナルの幅に合わせるようになっています。 ターミナルの大きさを途中で変更すると表示が崩れる場合があるので、 幅の上限値は指定しておくとよいと思います。

rangeしたい(tqdm.trange

1from tqdm import trange
2
3for i in trange(10000):
4    time.sleep(1)

trangetqdm(range)を省略した形です。 少しだけタイピング量が減らせます。

pandasしたい(tqdm.pandas

1from tqdm import tqdm
2
3tqdm.pandas(desc="プログレスバーの説明")
4data.progress_apply(処理)

Pandasデータフレームに対する処理も進捗バーを表示できます。 tqdm.pandasを呼ぶことで、 mapメソッド相当のprogress_mapapplyメソッド相当のprogress_applyが使えるようになります。

ノートブックしたい(tqdm.notebook

1from tqdm.notebook import tqdm
2
3for i in tqdm(range(10)):
4    time.sleep(1)

Jupyter Notebookで使う場合はtqdm.notebookを使うと、表示がおしゃれになります。

リファレンス