如何在 Jupyter 中为熊猫修复 tqdm progress_apply?

Posted

技术标签:

【中文标题】如何在 Jupyter 中为熊猫修复 tqdm progress_apply?【英文标题】:How to fix tqdm progress_apply for pandas in Jupyter? 【发布时间】:2018-01-17 15:20:22 【问题描述】:

不太明白这是一个错误还是我的本地问题,在 Jupyter 中将tqdm progress bars 与 progress_apply 一起使用仍然存在一些问题。

第一次尝试:

from tqdm import tqdm
tqdm_notebook.pandas(desc="Example Desc")
keywords_df['keyword'] = keywords_df['keywird'].progress_apply(lambda x: x.replace('*',''))

输出(没有任何条)

AttributeError: 'function' object has no attribute 'pandas'

第二次尝试:

from tqdm import tqdm
tqdm_notebook().pandas(desc="Example Desc")
keywords_df['keyword'] = keywords_df['keywird'].progress_apply(lambda x: x.replace('*',''))

输出: 两个酒吧(需要一个)。第一个柱是空的(0it [00:00, ?it/s]),第二个没问题。

任何想法如何更改 progress_apply 描述和显示栏没有空的初始化栏? :)

附言 文档 (https://github.com/tqdm/tqdm) 说我可以使用 tqdm_notebook,但它不适合我 :)

# 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!")

【问题讨论】:

【参考方案1】:

现在你可以这样做了:

from tqdm.notebook import tqdm
tqdm.pandas()

df.progress_apply(...)

我的 tqdm 版本是 4.39.0

【讨论】:

【参考方案2】:

来自 tqdm 开发者的Answer:

笔记本电脑支持仍处于(后期)测试阶段。 API 可能会改变 当我们发布 tqdm v5 时稍微有点,但现在你可能需要

from tqdm._tqdm_notebook import tqdm_notebook

tqdm_notebook.pandas(...

【讨论】:

【参考方案3】:

这是我在我的 jupyter 笔记本中运行的,然后 progress_apply 工作:

from tqdm import tqdm, tqdm_notebook
tqdm_notebook().pandas()

在 tqdm_notebook 之后没有 () 时出现错误

【讨论】:

【参考方案4】:

假设您的问题是关于如何使用状态栏,而不是 Jupyter NoteBook 上状态栏的苦行者,那么您的代码应该是

tqdm.pandas(desc="Example Desc")
keywords_df['keyword'] = keywords_df['keywird'].progress_apply(lambda x: x.replace('*',''))

【讨论】:

Ascetics 相当重要,因为它是使用 tqdm_notebook(不仅仅是 tqdm)的主要原因。此外,tqdm_notebook 适用于嵌套条,而静态 tqdm 与 colorama 有一些问题:)【参考方案5】:

以下内容对我有用:

from tqdm import tqdm
tqdm.pandas()
keywords_df['keyword'] = keywords_df['keywird'].progress_apply(lambda x: x.replace('*',''))

【讨论】:

以上是关于如何在 Jupyter 中为熊猫修复 tqdm progress_apply?的主要内容,如果未能解决你的问题,请参考以下文章

Jupyter Notebook 中的 tqdm 重复打印新的进度条

Python tqdm 导入检查 jupyter notebook 或 lab 是不是正在运行

如何在同一个 jupyter 笔记本单元格中显示多个熊猫系列直方图?

如何在一个单元格中同时显示随机数据和数据集的描述性统计数据? (Jupyter 笔记本,熊猫)

Jupyter python3笔记本无法识别熊猫

如何在 Jupyter notebook 中为 pyspark 设置 MySQL 的 JDBC 驱动程序?