Tqdm bar format python

Освоение индикаторов выполнения Python с помощью tqdm: подробное руководство

Иногда важно знать, выполняется ли процесс, например установка, или нет. Хотя мы можем представить прогресс с помощью чисел, его легче понять с помощью визуального индикатора выполнения. В этом руководстве мы узнаем, как создавать индикаторы выполнения в Python с помощью библиотеки tqdm, настраивать их и просматривать в нашей командной строке и в наших записных книжках Python. К концу у вас будут знания для визуального отслеживания прогресса в ваших программах на Python. Давайте погрузимся!

Библиотека tqdm в Python — это простой и интерактивный способ отображения индикаторов выполнения в ваших программах. С помощью всего нескольких строк кода вы можете добавить визуальное отслеживание циклов, настроить длину и описание индикатора выполнения и даже отобразить цветные индикаторы выполнения в Jupyter Notebooks.

Понимание библиотеки Python tqdm

«tqdm» означает «taqaddum», что в переводе с арабского означает «прогресс». Библиотека tqdm — это библиотека Python, которая позволяет очень просто создавать индикаторы выполнения. Он предоставляет метод добавления индикаторов выполнения к вашим циклам и перебора элементов при отображении прогресса в режиме реального времени. С помощью tqdm вы можете добавить индикатор выполнения в свои циклы всего несколькими строками кода.

Установка и использование tqdm: основы

Мы начнем с установки модуля tqdm с помощью pip

Синтаксис использования функции tqdm:

tqdm(iterable, desc = "Any text")
  • iterable : любой итерируемый объект, над которым должен отображаться индикатор выполнения. Мы возьмем Python range(x) в цикле for здесь.
  • desc : Параметр desc в tqdm позволяет указать пользовательскую строку префикса для индикатора выполнения, которая может дать контекст для хода выполнения (например, «Загрузка», «Обработка» и т. д.).

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

Читайте также:  Python sort by first element in list

После установки мы напишем простой код для отображения индикатора выполнения в нашей командной строке:

from time import sleep from tqdm import tqdm for i in tqdm(range(10)): sleep(1)

Начиная с импорта tqdm и библиотеки времени, мы написали наш образец для цикла. Здесь мы взяли range(10) как наша итерация для tqdm(), которая дает указание нашему циклу for повторяться 10 раз. Sleep(1) заставляет программу python ждать 1 секунду на каждой итерации, это позволяет нам легко наблюдать за работой индикатора выполнения. Узнать больше о time.sleep() здесь.

Скриншот 2023 05 29 082340

Бар выглядит длиннее, чем нужно? Давайте настроим его и сделаем его меньше!

Настройка индикатора выполнения: как настроить длину

Модуль tqdm предоставляет параметр bar_format который можно использовать для изменения длины индикатора выполнения с точки зрения количества символов.

from time import sleep from tqdm import tqdm for i in tqdm(range(10), bar_format="", desc ="Installing Happiness"): sleep(1)

Давайте разберем bar_format строка, используемая в примере кода:

  • : Представляет крайнюю левую часть индикатора выполнения.
  • : Указывает фактическую полосу прогресса, здесь у нас есть ширина 20 символов.
  • : Представляет крайнюю правую часть индикатора выполнения.

Скриншот 2023 05 31 004432

Обратите внимание, что длина индикатора выполнения теперь составляет всего 20 символов, что значительно меньше. Вы можете изменить длину стержня на любую меру в соответствии с вашими требованиями.

Предоставление контекста вашему прогрессу: использование параметра desc

Как правило, при установке пакетов Python мы видим такие ключевые слова, как загрузка/установка в нашей командной строке. Мы можем добавить текст перед индикаторами выполнения, подобными этим, с помощью desc параметр tqdm() . Например, в наш код мы добавим параметр desc =»Installing Happiness» в tqdm() функция, теперь наш код становится таким:

from time import sleep from tqdm import tqdm for i in tqdm(range(10), bar_format="", desc ="Installing Happiness"): sleep(1)

Это даст нам желаемый результат с текстом «Installing Happiness» перед индикатором выполнения:

Скриншот 2023 05 31 004721

Раскрасьте свой ноутбук Jupyter цветными индикаторами выполнения

Похожий на tqdm() , tqdm_notebook() позволяет перебирать итерируемый объект, отображая индикатор выполнения. Однако tqdm.notebook.tqdm предназначен для отображения индикаторов выполнения с более богатым интерфейсом в Jupyter Notebooks по сравнению с tqdm, который лучше подходит для интерфейсов командной строки. Он обеспечивает цветное визуальное представление хода выполнения, включая количество итераций, расчетное оставшееся время и различные другие настраиваемые параметры.

from tqdm.notebook import tqdm as tqdm_notebook import time for i in tqdm_notebook(range(10), desc = "Tqdm in Jupyter Notebook"): time.sleep(1)

В приведенном выше примере мы использовали tqdm_notebook() который имеет почти такое же использование, как функция tqdm() . Цвет индикатора выполнения меняется следующим образом:

  • Синий: пока процесс еще выполняется
  • Зеленый: процесс завершен
  • Красный: процесс остановлен до завершения
Читайте также:  Php mysql имена таблиц

Скриншот 2023 05 31 010001

Скриншот 2023 05 31 010017

Узнать больше о tqdm здесь

Заключение

Мы только что изучили мощь библиотеки tqdm в Python, превратив утомительные циклы в визуально восхитительные индикаторы прогресса. Независимо от того, повторяете ли вы процесс обработки данных или отслеживаете трудоемкую задачу, настраиваемые индикаторы выполнения tqdm помогут вам. Итак, какой прогресс вы будете отслеживать в своем следующем проекте Python?

Читать далее…

Источник

Progress Bars in Pandas/Python — TQDM

In this short guide, I’ll show you how to show progress bars for most common operations in Pandas.

To start, here is the basic usage that might be applied in order show progress bar in Pandas:

import pandas as pd import numpy as np from tqdm import tqdm df = pd.DataFrame(np.random.randint(0, 100, (1000000, 100))) tqdm.pandas(desc="power DataFrame 1M to 100 random int!") df.progress_apply(lambda x: x**2) df.groupby(0).progress_apply(lambda x: x**2) 

In the next section, I’ll review the steps and details to apply the above syntax in real examples.

Step 1: Install and Update TQDM

First let’s see how to install and update the library. To install tqdm in Python you can use the code below:

Many new features and bug fixes come with the latest version. It’s always a good idea to stay up to date with most Python libraries:

tqdm shows progress bar for loops and other operations. All you need is to wrap any iterable with tqdm(iterable) .

A fun fact for tqdm which you probably don’t know:

  • the name derives from the Arabic — taqaddum (تقدّم) which mean «progress» * there is Spanish abbreviation — «te quiero demasiado» — meaning — «I love you so much»

Step 2: Show Progress bar on loops

As we so in Step 1 — all you need to do is wrap iterable with tqdm .

Let’s check a small program which calculates the power of numbers in range from 0 to 2000000.

In order to follow the progress of this operation we can use the following syntax:

import numpy as np from tqdm import tqdm myrange = np.arange(2000000) i_2 = [] for i in tqdm(myrange): i_2.append(i**2) 

Step 3: Change progress bar size and style

If you like to change the way tqdm shows the progress bar you can use the following options:

  • import from tqdm.auto import tqdm to show a different style
  • add parameter bar_format=’%|’ or bar_format=»
Читайте также:  Проверить свой код на питоне

Let’s see both in action. First changing the style a nicer one (at least in JupyterLab):

import numpy as np from tqdm.auto import tqdm myrange = np.arange(2000000) i_2 = [] for i in tqdm(myrange): i_2.append(i**2) 

Change the size of the progress bar:

import numpy as np from tqdm import tqdm myrange = np.arange(2000000) i_2 = [] for i in tqdm(myrange, bar_format='%|'): i_2.append(i**2) 

Step 4: Progress bar during Pandas operations

In this step we will see how to show the progress for the most common Pandas operations.

Adding a progress bar to Pandas shouldn’t impact the performance but in case of doubts it’s better to be checked.

You can find a simple example for Pandas progress bar below:

Pandas iterrows and progress bar

The simplest usage of tqdm in Pandas is in combination of loop and iterrows() . You will need to provide the total number of all items — which can be get by — df.shape[0] :

from time import sleep for index, row in tqdm(df.iterrows(), total=df.shape[0]): sleep(0) 

Pandas progress bar for lambda

progress_apply is a tqdm method which can accept a lambda. It can perform simple operations on the operand like power on 2:

tqdm.pandas(desc="power DataFrame 1M x 100 of random int!") df.progress_apply(lambda x: x**2) 

Pandas progress bar for function with progress_map

tqdm offers method progress_map which can be used to apply functions to Pandas DataFrame or Series. It’ll show a progress bar:

from tqdm import tqdm def cube(x): return x ** 2 tqdm.pandas() df['cube'] = df[0].progress_map(cube) 

Pandas progress bar for dictionary map

If you like to map the values of a dictionary to Pandas column and follow the progress with bar you can use the following syntax:

mapping = df[0].progress_map(lambda x: mapping.get(x)) 

Pandas and progress_aggregate

Finally let’s check how to show progress bar on aggregation functions like:

from tqdm import tqdm tqdm.pandas() df.groupby(0).progress_aggregate(sum) 

Resources

By using DataScientYst — Data Science Simplified, you agree to our Cookie Policy.

Источник

Оцените статью