1. Структуры данных и импорт файлов
Инструмент для таблиц: почему не Excel и не стандартный Python
Анализ данных часто начинается с таблиц. Если вы когда-нибудь пытались обрабатывать табличные данные с помощью стандартных списков и словарей Python, вы знаете, насколько это трудоемко. Написание вложенных циклов, постоянные проверки на пустые значения и десятки строк кода ради простейшей группировки делают процесс медленным и подверженным ошибкам.
С другой стороны, существует Excel — отличный инструмент для визуального просмотра и базовых расчетов. Но у него есть физические ограничения. Если количество строк в вашем файле , Excel просто не сможет открыть его полностью. Кроме того, ручные операции в Excel сложно автоматизировать и масштабировать.
Библиотека Pandas решает обе эти проблемы. Это швейцарский нож для табличных данных в экосистеме Python. Она загружает данные в оперативную память компьютера и позволяет фильтровать миллионы строк, находить аномалии и объединять разные файлы за доли секунды с помощью пары строк элегантного кода.
Установка и негласный контракт разработчиков
Если вы используете стандартный дистрибутив Python, библиотеку необходимо установить через терминал:
В мире анализа данных существует жесткое правило импорта этой библиотеки. Никто не пишет просто import pandas. Все разработчики договорились использовать сокращение (алиас) pd. Это стандарт, который вы встретите в любом чужом коде, документации или ответе на форуме:
Анатомия таблиц: Series и DataFrame
Вся магия Pandas строится на двух базовых структурах данных. Понимание их внутреннего устройства — ключ к эффективной работе с библиотекой.
Series: умная колонка
Series — это одномерный массив данных. Визуально его можно представить как одну колонку в таблице. Главное отличие Series от обычного списка Python заключается в наличии индекса — встроенной системы меток для каждого элемента.
Представьте обычный список продаж за три дня: [150, 200, 120]. В Python вы обращаетесь к ним по порядковым номерам (0, 1, 2). В Pandas вы можете привязать к каждому значению осмысленную метку, например, дату.
Индекс позволяет мгновенно находить нужные данные не по их позиции, а по смысловому ключу, что работает так же быстро, как поиск в словаре.
DataFrame: царь-таблица
DataFrame — это двумерная структура данных, состоящая из строк и столбцов. По сути, это классическая таблица.
С технической точки зрения DataFrame — это набор объектов Series, которые имеют общий индекс. Если Series — это отдельная колонка, то DataFrame — это вся таблица целиком, где каждая колонка имеет свое имя (заголовок), а все строки связаны единым индексом.
Создать DataFrame с нуля можно из обычного словаря Python. Это невероятно полезно для быстрого прототипирования или создания небольших тестовых наборов данных.
В результате выполнения этого кода ключи словаря станут названиями столбцов, а списки — их содержимым. Pandas автоматически сгенерирует числовой индекс от 0 до 2.
Импорт данных из внешних источников
В реальной работе аналитика данные редко создаются вручную. Обычно они выгружаются из баз данных, CRM-систем или предоставляются заказчиком в виде файлов. Самый популярный формат обмена табличными данными — CSV (Comma-Separated Values).
Чтение CSV-файлов
Для загрузки CSV-файла используется функция read_csv(). В самом простом сценарии достаточно передать ей путь к файлу:
Однако реальные данные редко бывают идеальными. Часто при попытке открыть файл вы можете столкнуться с ошибками или получить нечитаемый текст («кракозябры»). Для решения этих проблем у функции read_csv() есть десятки параметров. Рассмотрим самые важные:
sep=';'.encoding='windows-1251'. Современный стандарт — encoding='utf-8'.index_col='client_id'.Пример надежного импорта проблемного файла:
Работа с Excel
Pandas также отлично справляется с файлами Excel (форматы .xls и .xlsx). Для этого используется функция read_excel().
> Важное отличие: файлы Excel могут содержать несколько листов. По умолчанию Pandas загружает только первый лист. > > Документация Pandas
Если вам нужен конкретный лист, укажите его название в параметре sheet_name:
Первое знакомство с датасетом
Представьте: вы успешно загрузили файл на строк. Выводить всю таблицу на экран бессмысленно — это перегрузит интерфейс и не даст вам никакой полезной информации. Вместо этого в Pandas есть три метода для быстрого аудита загруженных данных.
1. Осмотр структуры: head() и tail()
Метод head() выводит первые 5 строк таблицы. Этого достаточно, чтобы визуально оценить, правильно ли загрузились данные, корректно ли определились заголовки и нет ли смещения колонок.
Если вам нужно посмотреть последние строки (например, чтобы проверить свежие записи, если данные отсортированы по времени), используйте метод tail().
2. Оценка масштаба: атрибут shape
Чтобы узнать точный размер таблицы, обратитесь к атрибуту shape. Обратите внимание: это свойство таблицы, а не функция, поэтому скобки на конце не ставятся.
Результатом будет кортеж из двух чисел, например (500000, 14). Это означает, что в вашей таблице ровно 500 тысяч строк и 14 столбцов. Понимание размерности критически важно перед запуском ресурсоемких операций.
3. Технический паспорт таблицы: info()
Метод info() — это рентгеновский снимок вашего датасета. Он выводит сводную техническую информацию:
| Колонка | Non-Null Count | Dtype | | :--- | :--- | :--- | | client_id | 500000 non-null | int64 | | email | 498200 non-null | object | | total_spent | 500000 non-null | float64 |
В этом примере мы сразу видим проблему: в колонке email всего 498 200 заполненных значений при общем количестве строк в 500 000. Это значит, что у 1 800 клиентов не указана электронная почта. Такие пропуски — частая головная боль аналитика, и метод info() позволяет обнаружить их в первые же секунды работы.
Освоив правильный импорт и первичный осмотр данных, вы закладываете надежный фундамент. Ошибка на этапе чтения файла (например, неправильная кодировка или потерянный разделитель) может исказить все последующие результаты анализа.