Раздел 42 · Аналитика данных с нуля

Первая таблица в pandas: загрузка, фильтры и сортировка

middle~15 мин

без входаВойди, чтобы отмечать прогресс, вести заметки и решать задачи в редакторе. войти

Бран · продюсер «Хроник Пограничья»

Финансисты прислали мне выгрузку покупок в CSV и сказали: «открой в питоне, там удобнее». Ты же всё делаешь на SQL. Зачем тебе ещё один язык?

В прошлом уроке ты прочитал CSV средствами Python, отобрал покупки и собрал небольшой отчёт. Переменные, списки, словари, условия и функции больше не скрываются за незнакомыми знаками. Теперь возьмём pandas: библиотека хранит целую таблицу и применяет операцию сразу к столбцу. Сегодня загрузим выгрузку и повторим знакомый отбор без ручного цикла.

Склад и верстак

База данных похожа на большой склад. SQL это погрузчик: быстро находит нужные коробки среди миллионов, считает их и складывает в стопки. Но тонкую работу на складе не делают. Коробку несут на верстак, где под рукой инструменты: статистика, графики, склейка с файлом от финансистов.

Основы Python у тебя уже есть. Дальше учим не язык, а библиотеки под задачи аналитика:

Правило разделения труда простое. Что можно посчитать в базе, считай в базе: она быстрее, и данные не надо тащить по сети. В Python приезжает уже небольшой результат запроса, тысячи строк, а не миллионы.

Jupyter: код и ответ на одной странице

Работай в Jupyter-блокноте, который ты настроил в уроке про первый запуск. Если pandas ещё не установлен, останови Jupyter и выполни python -m pip install pandas в терминале с активным окружением курса. Затем снова запусти python -m jupyter lab и выбери ядро этого окружения.

Перед отправкой отчёта перезапусти ядро и выполни все ячейки сверху вниз. Встроенные задачи устроены иначе: ты пишешь функцию в solution.py, а проверка каждый раз запускает её в свежем процессе Python. Как передавать аргументы и возвращать результат, ты уже разобрал в уроке про функции.

DataFrame: таблица в памяти

Таблица в pandas называется DataFrame. Столбцы у неё именованные, как у результата SQL-запроса, только живёт она в памяти, и её можно крутить дальше. Отдельный столбец называется Series.

Финансисты выгрузили все покупки «Хроник» в purchases.csv: те же столбцы, что в таблице purchases. Открываем:

import pandas as pd

df = pd.read_csv("purchases.csv")
df.head(3)
   id  player_id  offer_id platform  amount_rub status        receipt_id              created_at
0   1          5         2  android       499.0   paid  and-d3a1049244b3  2026-01-06 09:52:49+00
1   2         34        12      ios       199.0   paid  ios-db23380eade5  2026-01-06 13:32:13+00
2   3         34         4      ios      1990.0   paid  ios-4bab244cfc6d  2026-01-07 05:14:28+00

head показывает первые строки, как LIMIT 3. Слева от данных стоит индекс: номера строк, которые pandas проставил сам. df.shape возвращает (1250, 8): 1250 строк и 8 столбцов, ровно столько покупок мы насчитали в уроке про агрегаты.

урок из курса

Урок из курса «Аналитика данных с нуля». Курс покупается один раз и остаётся навсегда: 500 ₽.

Оплата пока не подключена: премиум и курсы открываются промокодом.