Tqdm 与 Pandas 集成

17 Mar 2025 | 4 分钟阅读

在本教程中,我们将学习如何在 Pandas 库中实现 Tqdm。Tqdm 模块用于根据需要创建进度条。进度条是估算和显示任务所需时间的宝贵工具。

要理解本教程,您应该熟悉 Tqdm 模块的概念以及如何创建进度条。

我们有一个关于 Tqdm 模块的完整教程;如果您不熟悉该概念,请访问Python Tqdm 模块

与 Pandas 集成

Pandas 是一个著名且有用的库,用于处理数值数据。它是处理表格数据最常用的库之一。Pandas 以两种不同的方式表示数据 - Series 和 Dataframe。Dataframe 是一个带有行和列的表格结构,也可以表示异构数据。这个库是建立在 Numpy 库之上的,在数据科学领域得到了广泛的应用。

要使用 Pandas 库,我们需要使用 pip 命令在我们的系统上安装它。

示例 -

输出

    0   1   2   3   4
0  86  39   1  45  59
1  77  29  52  86  68
2  25  33  39  75  57
3  45  72  83   0  50
4   5   8   8  33  15
5  39  35   9  57   5
6  47  90  97  94  25
7  74  59  51  42  27
8  58  75  42  80  41
9  92  73   4  45  80
pandas tqdm integration demo: 100%|????????????????????????????????????????????????????????????????| 100/100 [00:00<00:00, 659.65it/s]
    0   1    2   3   4
0  91  44    6  50  64
2  30  38   44  80  62
3  50  77   88   5  55
4  10  13   13  38  20
5  44  40   14  62  10
6  52  95  102  99  30
7  79  64   56  47  32
8  63  80   47  85  46
9  97  78    9  50  85

在上面的代码中,我们导入了 Pandas 和 Tqdm 库,并初始化了一个大小为 100x100、值为 0 到 100 之间随机整数的 Dataframe。

然后,我们使用 **tqdm.pandas** 方法将 **pandas.progress_apply** 函数与 Tqdm 结合。我们使用 progress_apply 函数代替 apply 函数。此函数用于显示 Tqdm 条来表示进度的百分比。

apply 和 **process_apply()** 函数都接受一个函数作为参数。在我们的代码中,我们传递了一个 lambda 函数,该函数接收一个数字,加 10 并返回它。

Tqdm Notebook

Jupiter notebook 是开源的,支持 Python 和 R 等多种编程语言。然而;它在 Python 开发者中非常受欢迎。它提供了一个实时交互的 Python 运行时环境。Jupyter notebook 在 ML 从业者和数据工程师中非常受欢迎,它有助于逐行检查数据或进行测试。

我们可以在 Jupyter notebook 中显示 Tqdm 加载器。为此,我们首先需要在系统中设置 Jupyter notebook。设置完成后,我们需要安装 **tqdm.notebook** 模块,这与 Tqdm 类似。

打开一个 notebook 并运行 pip install ipywidgets 以确保进度条能够动态更新并在 notebook 中显示。

Tqdm 条有三种颜色。绿色表示成功完成的进度,蓝色表示正在进行的进程,红色表示已中途终止。

示例 -

输出 -

正在进行进程的输出 -

Tqdm Integration with Pandas

成功进程的输出 -

Tqdm Integration with Pandas

**tqdm_notebook** 应该像 tqdm 一样围绕一个可迭代对象进行包装。Jupyter notebook 可以实现 Tqdm 库的所有函数和功能。例如 - **desc** 关键字用于打印进度条的描述、总迭代次数等。

Tqdm 的替代方案

Tqdm 是一个方便强大的工具,用于跟踪 Python 中的进程进度。除此之外,还有许多其他库可以用于实现相同或类似的目标。

其中一些库是 **processbar、processbar2** 和 **alive-process。**

**processbar** 库非常简单,并用 # 符号打印。我们还可以将进度条打印为旋转器,就像浏览器中显示的加载圆圈一样。但这会给 print 语句和进度条带来问题。每次打印语句后,都会显示一个新的进度条。

为了解决这个问题,我们可以使用 **progressbar2** 库,它允许标准重定向到输出,能够与干净的进度条一起使用 print 语句。

最后一个替代库是 alive-process,它提供了一些吸引人的进度条。如果您需要一个动画进度条,可以使用 alive-progress 库。

Tqdm 的优点

以下是 Tqdm 库的优点。

  • 与同类产品相比,Tqdm 库的速度快得多。
  • 它不仅可以与 Jupyter notebook 一起使用,还可以与 Keras、Dask 等流行的 Python 框架一起使用。
  • 还可以根据项目需求提供与 Discord、Slack 和 Telegram 的自定义集成选项。

结论

本教程包括 Tqdm 与 Pandas 库的实现。我们已经探索了它的功能和优点。我们可以使用其替代库,如 **processbar、processbar2** 和 **alive-progress** 来代替 Tqdm 库。它提供了多种优势,例如对任务进度的直观估算,它会指示程序中何时出现问题或错误。它还估算了完成任务所需的时间。

我们还可以根据项目需求进行多种自定义,它是一个低开销且智能的进度条。


下一个主题Python Bisect 模块