🐼 Pandas – библиотека, без которой сложно представить современный анализ данных на Python
Если вы только начинаете изучать анализ данных, то рано или поздно столкнётесь с библиотекой Pandas.
Именно она стала стандартом де-факто для работы с табличными данными в Python.
С её помощью можно:
✅ читать данные практически из любых источников (CSV, Excel, SQL, Parquet и др.);
✅ очищать и преобразовывать данные;
✅ объединять таблицы (merge);
✅ выполнять группировки (groupby);
✅ работать с датами и временем;
✅ подготавливать данные для машинного обучения и визуализации.
Не случайно Pandas используют практически во всех направлениях Data Science, Data Analytics и Data Engineering.
Что изменилось в Pandas 3.0?
Версия 3.0 — это не просто очередное обновление. Разработчики внесли несколько изменений, которые делают библиотеку более предсказуемой и производительной.
1️⃣ Новый строковый тип данных
Раньше текстовые столбцы обычно имели тип:
object
Теперь по умолчанию используется специальный тип:
str
Это позволяет эффективнее работать со строками и уменьшает количество ошибок, когда в текстовый столбец случайно попадают объекты других типов. При наличии PyArrow под капотом это также может дать выигрыш в производительности и использовании памяти.
2️⃣ Copy-on-Write стал стандартом
Пожалуй, самое важное изменение.
Если вы работали с Pandas, то наверняка хотя бы раз видели загадочное предупреждение:
SettingWithCopyWarning
В Pandas 3.0 модель работы с копиями полностью переработана.
Теперь результат индексирования ведёт себя предсказуемо: изменения нужно вносить в исходный объект, а неоднозначное поведение с копиями и представлениями устранено. Благодаря этому SettingWithCopyWarning больше не используется.
3️⃣ Удалено множество устаревших возможностей
Версия 3.0 завершает переход, который начался ещё в ветке 2.x.
Если при работе с Pandas 2.3 вы не получали предупреждений об устаревших возможностях, то переход на 3.0 обычно проходит значительно проще.
Стоит ли переходить на Pandas 3?
Если вы начинаете новый проект – однозначно да.
Если же у вас есть большой существующий проект, сначала стоит протестировать его на Pandas 2.3, устранить предупреждения о совместимости, а уже затем переходить на версию 3.0. Именно такой путь рекомендуют разработчики библиотеки.
🐍 Срезы (slices) – одна из самых мощных возможностей Python
Большинство разработчиков используют срезы только для получения части списка. Но на самом деле с их помощью можно переворачивать последовательности, копировать коллекции и выбирать элементы с нужным шагом. Достаточно запомнить простую схему:
последовательность[начало:конец:шаг]
Если какой-либо параметр не указан, Python подставит значение автоматически.
numbers = [10, 20, 30, 40, 50, 60]
print(numbers[:3]) # Первые три элемента
print(numbers[2:]) # Все элементы, начиная с индекса 2
print(numbers[1:5]) # Элементы с 1 по 4 индекс
print(numbers[::2]) # Каждый второй элемент
print(numbers[::-1]) # Список в обратном порядке
print(numbers[-3:]) # Последние три элемента
print(numbers[:]) # Полная копия списка
💡 Полезно запомнить:
[:n] – первые n элементов;
[-n:] – последние n элементов;
[::-1] – самый быстрый способ развернуть последовательность;
[:] – создать поверхностную копию списка.
Эти четыре варианта встречаются в реальном Python-коде гораздо чаще, чем кажется на первый взгляд.