Как исправить tqdm progress_apply для панд в Jupyter?
Не совсем понимаю, является ли это ошибкой или просто моей локальной проблемой, все еще есть некоторые проблемы с использованием индикаторов выполнения tqdm с progress_apply в Jupyter.
Первая попытка:
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 и панель отображения без пустой панели инициализации?:)
PS Документация ( 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!")
3 ответа
Ответ от разработчика tqdm:
Поддержка ноутбуков все еще находится на поздней стадии бета-тестирования. API может немного измениться, когда мы выпустим tqdm v5, но сейчас вам, вероятно, нужно
from tqdm._tqdm_notebook import tqdm_notebook
tqdm_notebook.pandas(...
Теперь вы можете просто сделать:
from tqdm.notebook import tqdm
tqdm.pandas()
df.progress_apply(...)
Моя версия tqdm - 4.39.0
Это то, что я запускаю в своих ноутбуках jupyter, а затем работает progress_apply:
from tqdm import tqdm, tqdm_notebook
tqdm_notebook().pandas()
Я получил ошибку без () после tqdm_notebook
У меня работает следующее:
from tqdm import tqdm
tqdm.pandas()
keywords_df['keyword'] = keywords_df['keywird'].progress_apply(lambda x: x.replace('*',''))
Предполагая, что вы задаетесь вопросом о том, как использовать строку состояния, вместо аскетов строки состояния на Jupyter NoteBook, ваш код должен быть
tqdm.pandas(desc="Example Desc")
keywords_df['keyword'] = keywords_df['keywird'].progress_apply(lambda x: x.replace('*',''))