1. Основы Python для работы с данными
Основы Python для работы с данными
Python часто используют как клей между источниками данных (файлы, API, базы данных) и аналитикой: он помогает загрузить данные, привести их к нужному виду, проверить качество и подготовить к SQL-запросам или дальнейшей обработке.
В этом курсе Python и SQL будут работать вместе:
!Общая картина того, как Python подготавливает данные для SQL и аналитики
Подготовка окружения
Для практики удобно иметь отдельное окружение под проект, чтобы зависимости не конфликтовали.
pipКоманды (macOS/Linux):
Команды (Windows PowerShell):
Полезные ссылки:
Базовые типы данных и переменные
В работе с данными важно уверенно отличать числа, строки, логические значения и отсутствие значения.
Основные типы:
int — целые числаfloat — числа с дробной частьюstr — строкиbool — True или FalseNone — значение отсутствуетПример:
Практический смысл для данных:
None часто означает пропуск (например, пустое поле в CSV)Коллекции: list, tuple, dict, set
Данные редко приходят одним значением — обычно это набор строк, записей и полей.
Когда какую коллекцию использовать
| Коллекция | Как выглядит | Ключевая идея | Частый случай в данных |
|---|---|---|---|
| list | [1, 2, 3] | упорядоченный список | строки таблицы, список значений |
| tuple | (1, 2, 3) | неизменяемая последовательность | пары, фиксированные группы |
| dict | {'id': 1} | ключ → значение | запись (строка) как набор полей |
| set | {1, 2, 3} | уникальные значения | поиск уникальных категорий |
Пример: одна запись (строка таблицы) как словарь:
Пример: набор записей как список словарей:
Управляющие конструкции: условия и циклы
Для подготовки данных чаще всего нужны:
Условия:
Циклы и полезные функции:
Генераторы списков (list comprehension)
Это компактный способ преобразовать или отфильтровать список.
Важно: читаемость важнее краткости. Если выражение сложное, лучше обычный цикл.
Функции для повторяемых шагов
В обработке данных почти всегда повторяются одни и те же действия: чистка строк, преобразование типов, проверка качества. Это удобно упаковывать в функции.
Пример функции, которая пытается привести значение к числу:
Хорошая привычка: давать функциям понятные имена и держать их маленькими.
Строки: чистка и нормализация
Большая часть проблем с данными — это проблемы со строками.
Частые операции:
strip() — убрать пробелы по краямlower() / upper() — нормализовать регистрreplace() — заменить подстрокиsplit() / join() — разобрать и собрать строкиПример:
Даты и время
Для дат используйте модуль datetime, а не строки.
Справочник форматов дат:
Файлы и пути: безопасное чтение и запись
Работа с данными часто начинается с файлов: CSV, JSON, логов.
Пути через pathlib
pathlib делает код переносимым между Windows/macOS/Linux.
Ссылка:
Контекстный менеджер with
Открывайте файлы через with, чтобы файл гарантированно закрывался.
Форматы данных: CSV и JSON
CSV
CSV часто используют для выгрузок из таблиц и передачи данных между системами.
Ссылка:
JSON
JSON часто приходит из API или хранит вложенные структуры.
Ссылка:
Ошибки и надёжность: try/except
В реальных данных бывают неожиданные значения. Лучше предусмотреть это в коде.
Пример: безопасное преобразование в число.
Ключевая идея: пусть плохая строка не ломает весь процесс, а аккуратно помечается как пропуск.
Мини-пайплайн: прочитать CSV, почистить, записать результат
Ниже пример типичного шага подготовки данных: читаем CSV, чистим поля, пишем новый CSV.
Что важно в этом примере:
csv.DictReader, чтобы обращаться к полям по имени.None) и не падаем на плохих значениях.Мост к SQL: загрузка подготовленных данных в базу
Дальше по курсу мы будем активно использовать SQL. Уже сейчас полезно знать, что Python умеет работать с базами.
Встроенная база для учебных примеров — SQLite, модуль sqlite3 идёт вместе с Python.
Пример вставки данных с параметрами (это безопаснее, чем склеивать строку запроса):
Ссылка:
Что дальше по курсу
После этих основ мы будем углубляться в практику:
Эта статья — фундамент: типы данных, коллекции, функции, работа с файлами и обработка ошибок. Это то, на чём строится любая практическая работа с данными в Python.