Введение
В этом практическом занятии показаны различные методы ускорения операций с 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, чтобы повысить свои навыки.