Модуль 0 · старт

Зачем аналитику Python

Первый вопрос — не «как писать код», а «зачем он мне, если есть SQL и Excel». Пока граница между тремя инструментами не проведена, синтаксис учить бессмысленно: непонятно, для чего.

🧭 Главная идея: SQL живёт внутри базы Запрос отправляется базе данных, и база отвечает тем, что лежит у неё. Файл на диске, чужая система, почта — всего этого для неё не существует. Не потому что SQL слабый, а потому что дальше своих границ он просто не смотрит.

Задача, на которой видна граница

Каждый понедельник нужно делать одно и то же — ничего экзотического:

Еженедельная сверка
1. Взять из базы клиентов со ставкой по вкладу выше 18%.
2. Сверить их со списком из другой системы — коллега присылает файл Excel.
3. Найти тех, кто есть в базе, но отсутствует в файле.
4. Оформить результат таблицей и отправить письмом руководителю.

SQL закрывает только первый шаг. На втором он останавливается — файл коллеги лежит вне базы, и никакой запрос до него не дотянется. Дальше всё то же: почтой база не занимается.

«Не умеет» и «не дотягивается» — разные вещи

Присмотримся к третьему шагу: взять один набор строк и оставить те, которым в другом наборе пары не нашлось. Операция знакомая — это LEFT JOIN плюс проверка IS NULL (см. конспект по SQL в первой тетради). Такой приём называют анти-джойн: оставить только непарные строки.

Выходит, сама операция SQL прекрасно по силам. Мешает не она — мешает то, что две половины данных лежат в разных мирах. База не видит файл, файл не знает про базу.

💡 Формулировка, за которую стоит держаться SQL эту задачу не умеет — неверно. SQL до неё не дотягивается — верно.
Разница не в словах: из неё следует, что Python не заменяет SQL, а приносит ему данные.

Карта: где чей участок

SQLExcelPython
Где живётвнутри одной базывнутри одного файласнаружи всего
Силамгновенно перелопатить миллионы строкпосмотреть глазами, поправить рукамидотянуться, склеить, повторить
Слабостьне видит ничего вне базыруками, один раз, следов не остаётсясам по себе данных не хранит

Ключ — в правой нижней клетке. Python не хранит данные и не считает лучше базы. Он руки: сходил в базу, сходил за файлом, сходил в чужую систему — принёс всё в одно место. А дальше делает с этим те же операции, что уже знакомы по SQL.

Насколько те же — видно по названиям. Соединение таблиц в библиотеке pandas называется merge, и у него есть параметр how="left". Это тот же LEFT JOIN, другими буквами. Логику работы с таблицами учить заново не придётся — придётся научиться записывать её по-питоновски.

🚫 Грабли: «раз есть Python, SQL можно забыть» Наоборот. Python вызывает SQL: тот же SELECT отправляется в базу прямо из скрипта, а результат ложится в переменную. Знание SQL никуда не девается — у него появляются руки. Тот, кто пропустил SQL и сразу взялся за pandas, потом всё равно возвращается за ним.

Вторая причина: сделал один раз — работает всегда

Допустим, все четыре шага делаются руками: запрос, выгрузка, ВПР в Excel, копипаст в письмо. Двадцать минут, ничего сложного. Excel, кстати, третий шаг тоже закрывает — та же ВПР.

А потом наступает следующий понедельник. И ещё один. И так полгода: те же двадцать минут заново, каждый раз с шансом промахнуться мышкой. И если спросят, почему в мартовском отчёте такая цифра — ответить нечего, последовательность кликов нигде не записана.

💡 Что такое скрипт Скрипт (англ. script — «сценарий») — записанная последовательность действий. Написал один раз, дальше запускаешь командой. Выполнится одинаково сегодня, через полгода и на чужом компьютере. И его можно прочитать — увидеть, что именно он делал с данными.

Здесь и проходит настоящая граница между «посчитать» и «автоматизировать». Excel и SQL отвечают на вопрос один раз. Скрипт отвечает на него столько раз, сколько понадобится, и всегда одинаково.

Ответ на вопрос модуля

🎯 Своими словами Аналитику Python нужен, чтобы автоматизировать работу с базами данных — и рутину вокруг них: файлы, выгрузки, сообщения руководителю. Туда SQL уже не дотягивается.

Не «стать программистом» и не «выучить модный язык». Дотянуться туда, куда SQL не достаёт, и сделать так, чтобы работа, проделанная однажды, дальше делалась сама.

Ключевые слова

SQL живёт внутри базы не умеет ≠ не дотягивается Python — руки, а не хранилище анти-джойн — LEFT JOIN + IS NULL merge how="left" = LEFT JOIN скрипт — записанная последовательность Python вызывает SQL, а не заменяет
🎯 Проверь себя (без подсказок) 1. Возьми любую свою повторяющуюся задачу и разбей на шаги. Отметь, на каком шаге SQL останавливается и почему именно там.
2. Объясни коллеге разницу между «SQL этого не умеет» и «SQL до этого не дотягивается» — на своём примере.
3. Назови дело, которое делаешь руками чаще раза в месяц. Это кандидат на первый настоящий скрипт — вернись к нему после модуля 7.
🛠 Проверка среды Перед модулем 1 стоит убедиться, что Python на месте. В терминале:
python --version
Ответ вида Python 3.12.10 означает, что всё готово. Если терминал ругается, что команда не найдена — Python не установлен или не прописан в PATH.