Зачем аналитику Python
Первый вопрос — не «как писать код», а «зачем он мне, если есть SQL и Excel». Пока граница между тремя инструментами не проведена, синтаксис учить бессмысленно: непонятно, для чего.
Задача, на которой видна граница
Каждый понедельник нужно делать одно и то же — ничего экзотического:
2. Сверить их со списком из другой системы — коллега присылает файл Excel.
3. Найти тех, кто есть в базе, но отсутствует в файле.
4. Оформить результат таблицей и отправить письмом руководителю.
SQL закрывает только первый шаг. На втором он останавливается — файл коллеги лежит вне базы, и никакой запрос до него не дотянется. Дальше всё то же: почтой база не занимается.
«Не умеет» и «не дотягивается» — разные вещи
Присмотримся к третьему шагу: взять один набор строк и оставить те, которым в другом наборе
пары не нашлось. Операция знакомая — это LEFT JOIN плюс проверка IS NULL
(см. конспект по SQL
в первой тетради). Такой приём называют анти-джойн: оставить только непарные строки.
Выходит, сама операция SQL прекрасно по силам. Мешает не она — мешает то, что две половины данных лежат в разных мирах. База не видит файл, файл не знает про базу.
Разница не в словах: из неё следует, что Python не заменяет SQL, а приносит ему данные.
Карта: где чей участок
| SQL | Excel | Python | |
|---|---|---|---|
| Где живёт | внутри одной базы | внутри одного файла | снаружи всего |
| Сила | мгновенно перелопатить миллионы строк | посмотреть глазами, поправить руками | дотянуться, склеить, повторить |
| Слабость | не видит ничего вне базы | руками, один раз, следов не остаётся | сам по себе данных не хранит |
Ключ — в правой нижней клетке. Python не хранит данные и не считает лучше базы. Он руки: сходил в базу, сходил за файлом, сходил в чужую систему — принёс всё в одно место. А дальше делает с этим те же операции, что уже знакомы по SQL.
Насколько те же — видно по названиям. Соединение таблиц в библиотеке pandas
называется merge, и у него есть параметр how="left". Это тот же
LEFT JOIN, другими буквами. Логику работы с таблицами учить заново не придётся —
придётся научиться записывать её по-питоновски.
SELECT отправляется в базу прямо из скрипта,
а результат ложится в переменную. Знание SQL никуда не девается — у него появляются руки.
Тот, кто пропустил SQL и сразу взялся за pandas, потом всё равно возвращается за ним.
Вторая причина: сделал один раз — работает всегда
Допустим, все четыре шага делаются руками: запрос, выгрузка, ВПР в Excel, копипаст в письмо. Двадцать минут, ничего сложного. Excel, кстати, третий шаг тоже закрывает — та же ВПР.
А потом наступает следующий понедельник. И ещё один. И так полгода: те же двадцать минут заново, каждый раз с шансом промахнуться мышкой. И если спросят, почему в мартовском отчёте такая цифра — ответить нечего, последовательность кликов нигде не записана.
Здесь и проходит настоящая граница между «посчитать» и «автоматизировать». Excel и SQL отвечают на вопрос один раз. Скрипт отвечает на него столько раз, сколько понадобится, и всегда одинаково.
Ответ на вопрос модуля
Не «стать программистом» и не «выучить модный язык». Дотянуться туда, куда SQL не достаёт, и сделать так, чтобы работа, проделанная однажды, дальше делалась сама.
Ключевые слова
2. Объясни коллеге разницу между «SQL этого не умеет» и «SQL до этого не дотягивается» — на своём примере.
3. Назови дело, которое делаешь руками чаще раза в месяц. Это кандидат на первый настоящий скрипт — вернись к нему после модуля 7.
python --versionОтвет вида
Python 3.12.10 означает, что всё готово. Если терминал ругается,
что команда не найдена — Python не установлен или не прописан в PATH.