Повышение производительности в Pandas: TQDM с помощью Pandas Apply

При работе с большими наборами данных в pandas важно оптимизировать производительность вашего кода, чтобы избежать длительного времени выполнения. Одним из мощных инструментов для отслеживания хода итеративных операций является tqdm. В этой статье мы рассмотрим различные методы использования tqdm с функцией применения pandas для повышения эффективности кода и удобства работы пользователей.

Метод 1: базовое использование
Самый простой способ использовать tqdm с pandas apply — это объединить функцию tqdm() с методом apply(). Вот пример:

import pandas as pd
from tqdm import tqdm
# Create a DataFrame
df = pd.DataFrame({'column1': [1, 2, 3, 4, 5]})
# Apply a function with tqdm
tqdm.pandas()
df['column2'] = df['column1'].progress_apply(lambda x: x * 2)

Метод 2: tqdm_notebook для Jupyter Notebook
Если вы работаете в среде Jupyter Notebook, вы можете использовать tqdm_notebook для отображения индикатора выполнения непосредственно в интерфейсе блокнота. Вот пример:

from tqdm import tqdm_notebook
# Apply a function with tqdm_notebook
tqdm_notebook().pandas()
df['column2'] = df['column1'].progress_apply(lambda x: x * 2)

Метод 3: интеграция с Swifter
Swifter — это библиотека, которая оптимизирует операции применения pandas с использованием параллельной обработки. Объединив tqdm с Swifter, вы сможете добиться еще большего прироста производительности. Вот пример:

import swifter
# Apply a function with tqdm and swifter
tqdm.pandas()
df['column2'] = df['column1'].swifter.progress_apply(lambda x: x * 2)

Метод 4: использование оболочки tqdm_apply
Чтобы упростить процесс, вы можете создать многоразовую функцию-оболочку, которая инкапсулирует логику применения tqdm. Это позволяет вам легко применять tqdm к любому DataFrame pandas. Вот пример:

from tqdm import tqdm
def tqdm_apply(df, func):
    tqdm.pandas()
    return df.progress_apply(func)
# Usage
df['column2'] = tqdm_apply(df['column1'], lambda x: x * 2)

В этой статье мы рассмотрели несколько методов использования tqdm с pandas apply для повышения производительности и удобства работы пользователей. Добавляя индикаторы выполнения к итеративным операциям, вы можете отслеживать ход выполнения и оценивать оставшееся время. Это особенно полезно при работе с большими наборами данных. Не забудьте выбрать метод, который лучше всего соответствует вашей среде и требованиям, чтобы максимизировать эффективность.

Применяя эти методы, вы можете повысить эффективность задач обработки данных Pandas и сделать их более интерактивными и удобными для пользователя.