Архив рубрики ~Лента новостей~

Прекратите писать циклы в Pandas: 7 более быстрых альтернатив.

Прекратите писать циклы в Pandas: 7 более быстрых альтернатив.
Прекратите писать циклы в Pandas: 7 более быстрых альтернатив.

В этой статье вы узнаете, как заменить циклы pandas семью более быстрыми методами оптимизации обработки данных.

# Введение

Построчная итерация — одно из наиболее распространенных узких мест в производительности кода pandas . На небольших наборах данных это незаметно, но при обработке больших наборов данных становится существенным фактором.

Библиотека pandas построена на основе NumPy , которая выполняет операции над целыми массивами одновременно с помощью скомпилированного кода на языке C. Циклическая обработка строк в Python полностью обходит этот механизм и заставляет выполнять каждую операцию обратно в интерпретатор Python — по одной строке за раз.

В этой статье рассматриваются 7 альтернатив циклам в pandas, каждая из которых подходит для разных типов преобразований. К концу статьи у вас сформируется четкая схема, какой инструмент использовать в зависимости от сложности задачи.

Вы можете скачать блокнот Colab на GitHub .

# Настройка набора тестовых данных

В этой статье мы будем использовать реалистичный набор данных о заказах в электронной коммерции:

import pandas as pd import numpy as np np.random.seed(42) n = 100_000 categories = ['Электроника', 'Одежда', 'Дом и кухня', 'Спорт', 'Книги'] regions = ['Север', 'Юг', 'Восток', 'Запад'] df = pd.DataFrame({ 'order_id': range(1, n + 1), 'customer_age': np.random.randint(18, 70, n), 'product_category': np.random.choice(categories, n), 'region': np.random.choice(regions, n), 'price': np.round(np.random.uniform(5.0, 500.0, n), 2), 'quantity': np.random.randint(1, 10, n), 'days_to_ship': np.random.randint(1, 14, n), }) display(df.head())

Выход:

Настройка набора тестовых данных

Теперь у нас есть набор данных из 100 000 строк, с которыми мы можем работать.

# 1. Использование векторизованных операций для арифметики

При выполнении любых арифметических операций или сравнений в столбце, векторизованные операции должны быть вашим первым выбором.

Наша цель : рассчитать общую выручку с каждого заказа.

df['revenue'] = df['price'] * df['quantity'] display(df[['price', 'quantity', 'revenue']].head())

Выход:

# 2. Применение функции для условной логики

Если преобразование включает в себя логику, которую нельзя выразить с помощью простых арифметических операций, метод `.apply()` позволяет передать функцию по столбцу или строке.

Наша цель : присваивать приоритетную этикетку для отправки в зависимости от количества дней до доставки.

def shipping_label(days): if days

Источник: www.kdnuggets.com

Оцените материал:

Поделиться
Понравилась статья? Расскажите другим
ВКонтакте
Читайте также
Архив рубрики ~Коротко из Telegram~ 🚨 Крупные американские ИИ-компании давят на безопасность и интеллектуальную собственность… Новости робототехники Постановление Федеральной комиссии по связи о роботах проливает свет на политику США; как ИИ нового поколения может помочь складскому хозяйству Новости робототехники Инженерия будущего. Как развивается Институт робототехнических систем ЭФКО и Высшей школы экономики Новости робототехники Кожаные, подвиньтесь Минэкономики подготовило финальную редакцию проекта экспериментального правового режима для… Архив рубрики ~Коротко из Telegram~ От private LTE – к private 5G   Как известно,… Архив рубрики ~Коротко из Telegram~ Wildberries, Ozon, МТС и «Яндекс» заинтересовались покупкой доли в НСПК Wildberries… Архив рубрики ~Коротко из Telegram~ МАКСимальное обнуление Мобильные операторы обнулили с 1 августа стоимость трафика… Архив рубрики ~Коротко из Telegram~ ⚠️ Кэмерон Вулф (Netflix) разбирает исследования, объединённые одной идеей: агентов… Архив рубрики ~Коротко из Telegram~ 🔥 Нашли сервис, который собирает полноценный курс по любой теме… Архив рубрики ~Коротко из Telegram~ Интегрируем ИИ в работу: на GitHub собрали топовый список из 500+ рабочих… Архив рубрики ~Коротко из Telegram~ Этот принтер может обесценить коллекции гиков На Kickstarter представили HeyGears… Архив рубрики ~Коротко из Telegram~ #слухи Юбилейный стеклянный iPhone 20 уже на продвинутой стадии разработки,… Архив рубрики ~Коротко из Telegram~ AirPods Ultra, оснащенные камерой и с искусственным интеллектом, планируют выпустить… Архив рубрики ~Коротко из Telegram~ 🇨🇳 Apple получила одобрение властей КНР на запуск 🧠 Apple… Архив рубрики ~Коротко из Telegram~ 🚨 Крупные американские ИИ-компании давят на безопасность и интеллектуальную собственность… Новости робототехники Постановление Федеральной комиссии по связи о роботах проливает свет на политику США; как ИИ нового поколения может помочь складскому хозяйству Новости робототехники Инженерия будущего. Как развивается Институт робототехнических систем ЭФКО и Высшей школы экономики Новости робототехники Кожаные, подвиньтесь Минэкономики подготовило финальную редакцию проекта экспериментального правового режима для… Архив рубрики ~Коротко из Telegram~ От private LTE – к private 5G   Как известно,… Архив рубрики ~Коротко из Telegram~ Wildberries, Ozon, МТС и «Яндекс» заинтересовались покупкой доли в НСПК Wildberries… Архив рубрики ~Коротко из Telegram~ МАКСимальное обнуление Мобильные операторы обнулили с 1 августа стоимость трафика… Архив рубрики ~Коротко из Telegram~ ⚠️ Кэмерон Вулф (Netflix) разбирает исследования, объединённые одной идеей: агентов… Архив рубрики ~Коротко из Telegram~ 🔥 Нашли сервис, который собирает полноценный курс по любой теме… Архив рубрики ~Коротко из Telegram~ Интегрируем ИИ в работу: на GitHub собрали топовый список из 500+ рабочих… Архив рубрики ~Коротко из Telegram~ Этот принтер может обесценить коллекции гиков На Kickstarter представили HeyGears… Архив рубрики ~Коротко из Telegram~ #слухи Юбилейный стеклянный iPhone 20 уже на продвинутой стадии разработки,… Архив рубрики ~Коротко из Telegram~ AirPods Ultra, оснащенные камерой и с искусственным интеллектом, планируют выпустить… Архив рубрики ~Коротко из Telegram~ 🇨🇳 Apple получила одобрение властей КНР на запуск 🧠 Apple…

Оставить комментарий