小编典典

如何在Jupyter笔记本中对熊猫使用tqdm?

python

我正在使用jupyter笔记本对熊猫进行一些分析,由于我的apply函数需要很长时间,因此我希望看到一个进度条。通过这里的这篇文章,我找到了tqdm库,该库为pandas操作提供了一个简单的进度条。还有一个Jupyter集成,它提供了一个非常不错的进度条,其中进度条本身随时间而变化。

但是,我想将两者结合起来,但还不太了解如何做到这一点。让我们以与文档中相同的示例为例

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

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

# Register `pandas.progress_apply` and `pandas.Series.map_apply` with `tqdm`
# (can use `tqdm_gui`, `tqdm_notebook`, optional kwargs, etc.)
tqdm.pandas(desc="my bar!")

# Now you can use `progress_apply` instead of `apply`
# and `progress_map` instead of `map`
df.progress_apply(lambda x: x**2)
# can also groupby:
# df.groupby(0).progress_apply(lambda x: x**2)

它甚至说“可以使用’tqdm_notebook’”,但是我找不到方法。我已经尝试了一些事情,例如

tqdm_notebook(tqdm.pandas(desc="my bar!"))

要么

tqdm_notebook.pandas

但它们不起作用。在定义中,在我看来

tqdm.pandas(tqdm_notebook(desc="my bar!"))

应该可以,但是该栏无法正确显示进度,仍然有其他输出。

还有其他想法吗?


阅读 225

收藏
2021-01-20

共1个答案

小编典典

您可以使用:

tqdm_notebook().pandas(*args, **kwargs)

这是因为tqdm_notebook具有延迟器适配器,因此在访问其方法(包括类方法)之前必须实例化它。

将来(> v5.1),您应该能够使用更统一的API:

tqdm_pandas(tqdm_notebook, *args, **kwargs)
2021-01-20