Ускорить операции с pandas

PythonPythonBeginner
Практиковаться сейчас

This tutorial is from open-source community. Access the source code

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии показаны различные методы ускорения операций с DataFrame библиотеки pandas с использованием Cython, Numba и pandas.eval(). Эти методы могут значительно повысить скорость работы при обработке больших объемов данных.

Советы по использованию ВМ

После запуска виртуальной машины перейдите в левый верхний угол и переключитесь на вкладку Notebook, чтобы приступить к практике в Jupyter Notebook.

Иногда может потребоваться подождать несколько секунд, пока Jupyter Notebook полностью загрузится. Проверка правильности выполнения операций не может быть автоматизирована из-за ограничений Jupyter Notebook.

Если вы столкнетесь с проблемами при обучении, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.

Настройка и создание примера данных

Прежде чем мы начнем, импортируем необходимые модули и создадим пример DataFrame.

## Import necessary modules
import pandas as pd
import numpy as np

## Create a sample DataFrame
df = pd.DataFrame(
    {
        "a": np.random.randn(1000),
        "b": np.random.randn(1000),
        "N": np.random.randint(100, 1000, (1000)),
        "x": "x",
    }
)
df

Реализация функции на чистом Python

Начнем с создания функции на чистом Python, которая будет работать по строкам с DataFrame.

## Define a function
def f(x):
    return x * (x - 1)

## Define another function that uses the first function
def integrate_f(a, b, N):
       s = 0
       dx = (b - a) / N
       for i in range(N):
           s += f(a + i * dx)
       return s * dx

Резюме

Поздравляем! Вы завершили практическое занятие по ускорению операций с pandas. Вы можете попробовать другие практические занятия в LabEx, чтобы повысить свои навыки.