groupby 中如何显示 tqdm 的进度条?

在循环时调用 tqdm 显示进度已经是一个常规操作,常见的方式是

for ii in tqdm(...):
    ...

while 循环的情况类似,

while icnt in tqdm(range(n)):
    ...
    icnt += 1

这里记录没有显式循环时,在 groupby 中的用法:

import pandas as pd
import numpy as np
from tqdm import tqdm

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

# 用 tqdm注册 pandas.progress_apply 和 pandas.Series.map_apply 两个函数,下边的 'my bar1' 可以换成其他说明文字。
tqdm.pandas(desc="my bar!")

# 接下来可以用 progress_apply 代替原本的 dataframe.apply,用 progress_map 代替原本的 dataframe.map
df2 = df.iloc[:, 0].progress_apply(lambda x: x**2)
my bar!: 100%|██████████| 100000/100000 [00:00<00:00, 596835.61it/s]

或者在 groupby 中使用自定义函数:

def calc_x(x):
    return x ** 2
df2 = df.groupby(1).progress_apply(calc_x)
my bar!: 100%|██████████| 100/100 [00:00<00:00, 374.56it/s]

参考资料:
https://pypi.org/project/tqdm/

你可能感兴趣的:(groupby 中如何显示 tqdm 的进度条?)