Как использовать tqdm с пандами в ноутбуке jupyter?

Я делаю некоторый анализ с пандами в ноутбуке jupyter, и поскольку моя функция apply занимает много времени, я хотел бы увидеть индикатор выполнения. Через этот пост здесь Я нашел библиотеку tqdm, которая предоставляет простой индикатор выполнения для операции панды. Существует также интеграция 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!"))

должен работать, но панель должным образом не показывает прогресс, и есть еще дополнительный выход.

любой другие идеи?

1 ответов


Вы можете использовать:

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

это потому, что tqdm_notebook имеет адаптер задержки, поэтому необходимо создать его экземпляр перед доступом к его методам (включая методы класса).

в будущем (>v5.1), Вы должны иметь возможность использовать более однородный API:

tqdm_pandas(tqdm_notebook, *args, **kwargs)