Перейти к содержанию

172 уроков, 13 библиотек и челлендж «Что выведет код?» — бесплатно, код прямо в браузере

Начать обучение
Честное сравнение Вердикт с условием Бесплатные уроки

Pandas или Excel: что учить для работы с таблицами

Отчёты живут в Excel, а вы уже пишете на Python? Разбираем по-честному, где табличный редактор остаётся королём, а когда отчёт пора записывать кодом, — с таблицей, живым кодом и вердиктом вместо лозунга.

Редакция Питоники

Вечный спор, в котором редко уточняют задачу

Заказы приходят файлом .xlsx, вокруг него вырос весь офисный мир: автофильтр, сводная таблица, «покажи выручку по городам». А потом в жизни появляется Python — и на форумах начинается вечный спор «pandas или excel». Обычно в нём сталкиваются люди с разными задачами: у одного разовая табличка, у другого — еженедельный отчёт на полмиллиона строк.

Честный ответ скучнее лозунгов: это инструменты для разных режимов работы. Excel силён там, где решение принимается руками на маленьких данных. pandas силён там, где одни и те же шаги повторяются над файлом, который растёт. Поэтому ниже — не «кто круче», а разбор по 8 критериям: где выигрывает Excel, где pandas и где они равны.

Одна задача из курса pandas — сводная выручка по городам — решена кодом прямо на этой странице: нажмите кнопку и увидите вывод своими глазами. Рядом — пошаговое описание того, как то же самое делается в Excel, без прикрас.

Короткий ответ: это не «или», а «когда»

Вердикт: вопрос «pandas или excel» поставлен неверно — правильный вопрос «когда какой». Excel — инструмент ручных разовых отчётов и людей без Python: открыл, посчитал, отправил. pandas — когда задача повторяется, файл большой или шаги надо автоматизировать: отчёт записывается кодом и пересобирается одной командой. Курс pandas учит именно второму режиму — и Excel из него не выбрасывает, а оставляет под рукой.

Условие, при котором вердикт отменяется: разовая табличка на 20 строк руками — быстрее в Excel, и ставить на неё pandas не стоит ради самого pandas. Честный триггер для перехода выглядит иначе: вы второй раз делаете одни и те же клики по одному и тому же файлу. Вот тут pandas начинает экономить время, а не только нервы.

Excel останется, если...

  • задача разовая: табличка на 20 строк под текущий вопрос;
  • данные маленькие, а шаги придумываются на ходу;
  • отчёт отдают людям без Python — и они должны править его сами;
  • программирование в ваши планы пока не входит.

Открывайте pandas, если...

  • один и тот же отчёт пересобирается каждую неделю;
  • файл уже открывается неохотно или упирается в лимит листа;
  • шагов много — чистка, фильтры, сводная, сортировка — и повторять их нужно без ошибок;
  • вы уже учите Python — тогда отчёты становятся просто функцией.
Курс Pandas: 10 уроков

Pandas vs Excel: сравнение по 8 критериям

Метка в последней колонке — чьё преимущество в этом пункте. Без принижения: у каждой стороны честный счёт.

Сравнение Excel и pandas по восьми критериям
КритерийExcelpandasПлюс
Порог входаНиже некуда: открыл файл — и уже работаешь, Python не нуженНужны основы Python: переменные, списки, функции — без них тяжелоExcel
Открытие файлаДвойной клик по .xlsx или .csv — файл сразу перед глазамиОдна строка read_csv или read_excel — но её нужно написатьExcel
ФильтрацияАвтофильтр мышкой: быстро на маленькой таблице, след в файле не остаётсяОдна строка-маска df[df["city"] == "Москва"]: видна в коде и работает на любом размере файлаpandas
Группировка и сводныеСводная таблица умеет многое, но пересобирается мышкой и не хранит свои шагиgroupby().agg() — один вызов, шаг записан в коде и переносится на новый файлpandas
Повторяемость: кнопка против кодаКаждый пересчёт заново руками: те же клики по фильтрам и сводным, каждую неделюСкрипт перезапустили — отчёт собрался заново на свежих данных, без ручных шаговpandas
Большие файлыНа сотнях тысяч строк тормозит уже при открытии; лимит листа — 1 048 576 строкМиллионы строк в памяти; куски огромного файла читаются через nrows и chunksizepandas
АвтоматизацияМакросы VBA: вариант рабочий, но это отдельный язык и отдельная вселеннаяЖивёт в том же Python: отчёт по расписанию, обработка пачки файлов, часть общего проектаpandas
ЦенаДля студентов бесплатен по учебной лицензии, на рабочих компьютерах часто уже купленБесплатна всегда: открытая лицензия, ставится вместе с Python одной командойравны

Счёт честный: Excel берёт порог входа и открытие файла — для разовой ручной таблички его действительно хватает. pandas забирает всё, что повторяется и растёт. Цена — равная: оба инструмента обходятся бесплатно, просто по-разному.

Одна задача — обе руки

Датасет знакомый: шесть заказов интернет-магазина из урока 2 курса pandas — тот же, что в сравнении с SQL. Вопрос один: сколько заказов и какая выручка в каждом городе. Сначала pandas: запускаемый код прямо на странице.

pandas — выручка по городам
import pandas as pd
from io import StringIO

csv_data = """order_id,city,product,price,qty
1001,Москва,Ноутбук,54990,1
1002,Казань,Смартфон,24990,2
1003,Москва,Планшет,31990,1
1004,Сочи,Наушники,8990,3
1005,Казань,Ноутбук,57990,1
1006,Москва,Смартфон,25990,1"""

df = pd.read_csv(StringIO(csv_data))
df["revenue"] = df["price"] * df["qty"]

report = (
    df.groupby("city")
      .agg(orders_count=("order_id", "count"), revenue=("revenue", "sum"))
      .sort_values("revenue", ascending=False)
)

for city, row in report.iterrows():
    print(city, row["orders_count"], row["revenue"])
Вывод
Москва 3 112970
Казань 2 107970
Сочи 1 26970
Строка csv_data — это и есть маленький orders.csv: в песочнице нет файловой системы, поэтому данные встроены в код. На своём компьютере вместо StringIO сработает pd.read_csv("orders.csv") из урока 2.

Теперь те же шаги руками в Excel — без кода, честно и по порядку:

Как то же самое делает Excel

  1. Открыть orders.csv и выделить таблицу с заголовками.
  2. Автофильтром по столбцу city оставить один город — например, Москву.
  3. Скопировать отфильтрованные строки на свободный лист, добавить столбец «выручка» с формулой price × qty и протянуть её вниз.
  4. Посчитать число строк и просуммировать выручку — это ответ по Москве.
  5. Повторить шаги 2–4 для Казани и Сочи.
  6. Собрать итоги в одну табличку и отсортировать по выручке от большего к меньшему.

Ни один из этих шести шагов не записан в самом файле: через полгода их придётся восстанавливать по памяти. Код выше память имеет — это его собственные строки: при новых данных он пересчитает всё сам, а Excel-путь начнётся заново с шага 2. Команды из кода — read_csv, groupby, sort_values — подскажет шпаргалка pandas.

Блок запускается кнопкой прямо на странице: песочница подтягивает pandas при первом запуске. Вывод в блоке — настоящий, полученный интерпретатором Python, а не обещание.

Частые вопросы: pandas или Excel

Зависит от того, какая работа у вас уже есть. Если данные — файлы, которые вы разбираете регулярно, а Python вы всё равно решили учить, начинайте с pandas: он закрывает весь цикл, от чтения xlsx до готового отчёта. Если же задачи одноразовые, а программирование в планах нет — pandas не окупится, и Excel останется вашим главным инструментом. В самоучителе порядок такой: основы Python, затем pandas — и тогда Excel-файлы открываются одной строкой read_excel из урока 2 курса.

Нет. pandas заменяет только повторяемые шаги: фильтры, сводные, пересборку отчёта на свежих данных. Сам Excel никуда не денется — коллеги продолжат присылать xlsx, и это нормально: read_excel читает их напрямую, без ручного перекладывания в CSV. Разовые таблички на десяток строк по-прежнему быстрее сделать руками. Так что честная формула не «замена», а разделение труда.

Да: pd.read_excel("orders.xlsx"), а если листов несколько — параметр sheet_name с именем листа. Для работы read_excel нужна библиотека openpyxl: на своём компьютере она ставится командой pip install openpyxl. Честная оговорка: в браузерной песочнице openpyxl нет, поэтому приложить файл к странице нельзя — в примере выше данные вставлены кодом, так работает и весь наш курс. Чтение Excel-файлов разобрано в уроке 2 курса pandas.

Да, у DataFrame есть метод to_excel: df.to_excel("отчёт.xlsx") записывает таблицу в xlsx, и для записи нужна та же openpyxl. В уроках Питоники to_excel отдельно не разбирается — он упоминается в уроке 5 курса BeautifulSoup как способ сохранить результат парсинга. Большинство выгрузок при этом закрывает to_csv из урока 2: CSV открывается везде, включая сам Excel.

Смотрите не на инструмент, а на задачу — весь вердикт выше именно об этом. Если отчёт каждую неделю пересобирается из одного и того же файла, переход окупится за первый же месяц. Если вы делаете десять разных мелких таблиц в месяц, каждая под свой разовый вопрос, — pandas почти не выиграет. Рабочий компромисс для старта: не «переходить», а добавить pandas к Excel — читать xlsx кодом, а мелочи оставить мышке.

Что почитать ещё

Попробуйте pandas на своих данных за один вечер

Первый урок собирает таблицу из словаря, второй читает настоящий orders.csv — всё в браузере, без установки Python. Excel при этом не исчезает: он просто перестаёт быть единственным инструментом.

уроки с кодом на странице pandas работает в песочнице прогресс и XP бесплатно