Pandas — обработка и анализ данных в 2024 году
Подробный обзор библиотеки Pandas. Гибкая и мощная библиотека для анализа и обработки данных, разработанная на языке программирования Python.
Введение
Для того чтобы эффективно работать с этой библиотекой, нужно понять основные структуры данных. Пусть вас это не пугает, их всего две и разобраться с ними проще простого.
Series — это структура данных принципиально похожая на список и словарь в Python. Используется в качестве столбцов в таблице.
DataFrame — если говорить простыми словами, то эта структура данных представляет из себя обычную таблицу. Иными словами табличная структура данных. Как и во всех таблицах она состоит из строк и столбцов. Столбцами выступают объекты Series, а строки его элементы.
Установка
Pandas как и все библиотеки в Python устанавливаются стандартным методом через пакетный менеджер pip.
Использование
Чтобы показать библиотеку в работе, нам нужны какие нибудь статистические данные, для примера давайте возьмем данные ВВП 5 разных стран по версии всемирного банка и попробуем сформировать из них таблицу. Передавать данных в DataFrame мы будем используя знакомый синтаксис словаря Python.
Объект DataFrame имеет два индекса по столбцам и строкам. Если индекс по строкам не указан вручную, то pandas задает его автоматически.
Индексы
Назначать индексы объекту DataFrame можно при его создании или в процессе работы с ним.
Вызывая метод DataFrame мы передали ему аргумент index со списком именованных индексов.
Фильтрация данных
Pandas позволяет производить фильтрацию вывода по индексам и столбцам. Так же можно комбинировать индексы и колонки, использовать слайсы и логические выражения.
По столбцу
Обращение к столбцам в pandas реализовано стандартным образом, так как будто вы обращаетесь к ключу словаря, или же к методу объекта. В моем случае обращение как к методу объекта невозможно, я выбрал кириллическое название столбца, а работает только с латиницей 🙂
По строковому индексу
Для обращения к строковым индекса существуют два метода
Обращение к именованному индексу RU
По срезами
Объект DataFrame поддерживает использование срезов.
С использованием условий
Мы так же можем использовать логику в фильтрации данных. Давайте отобразить странны, в которых ВВП на душу населения в 2018 году был больше 100$
Работа с столбцами
Вы можете создавать, удалять и переименовывать ваши столбцы в любой момент времени.
Переименование
Для переименования столбца существует метод rename
Метод rename на вход принимает обычный словарь, ключ который является текущем названием столбца, а значение — новым. За один раз мы можем переименовать сколько угодно столбцов, главное не забывайте разделять элементы словаря запятой.
Важно: результат выполнение метода rename возвращает новый измененный объект DataFrame, поэтому переназначь основной экземпляр DataFrame.
Создание
Создадим новую колонку «Рост» и наполним ее значениями высчитанными из разницы 2018 к 2017 году.
В этой ситуации объект изменяется и переназначать экземпляр нам не нужно.
Удаление
Для удаления столбца существует метод drop, так же необходимо передать в аргумент axis значение index или columns.
Важно: результат выполнение метода drop возвращает новый измененный объект DataFrame, поэтому не забудьте переназначить DataFrame.
Загрузка данных
API загрузки данных имеет поддержку множество структурированных форматов. Для примера возьмем информацию из реестра специалистов в области ветеринарии, занимающихся предпринимательской деятельностью на территории Санкт-Петербурга. На сайте есть ссылочка для скачивания таблиц в формате CSV и MS Excel эти два формата мы и рассмотрим.
Из таблицы CSV
Осуществить загрузку данных в таблицу можно используя метод read_csv
Из таблицы MS Excel
За загрузку данных из excel таблицы отвечает метод read_excel
Установка библиотеки xlrd
Для загрузки данных из таблицы MS Excel необходимо установить дополнительную библиотеку xlrd
Загрузка данных
После установки необходимых зависимостей мы можем приступать к загрузке данных.
Список всех поддерживаемых форматов
Pandas поддерживает огромное количество форматов импорта данных, приведу полный список из официальной документации
Тип данных | Формат данных | Используемый метод |
---|---|---|
Текстовый | CSV | read_csv |
Текстовый | Fixed-Width Text File | read_fwf |
Текстовый | JSON | read_json |
Текстовый | HTML | read_html |
Текстовый | Буфер обмена | read_clipboard |
Бинарный | MS Excel | read_excel |
Бинарный | OpenDocument | read_excel |
Бинарный | HDF5 Format | read_hdf |
Бинарный | Feather Format | read_feather |
Бинарный | Parquet Format | read_parquet |
Бинарный | ORC Format | read_orc |
Бинарный | Msgpack | read_msgpack |
Бинарный | Stata | read_stata |
Бинарный | SAS | read_sas |
Бинарный | SPSS | read_spss |
Бинарный | Python Pickle Format | read_pickle |
SQL | SQL | read_sql |
SQL | Google BigQuery | read_gbq |
Сохранение данных
Так же как и в импорте API поддерживает множество форматов для экспорта данных. Воспользуемся данными о ВВП для демонстрации работы.
В таблицу CSV
За запись данных в таблицу CSV отвечает метод to_csv
В таблицу MS Excel
За запись данных в таблицу MS Excel отвечает метод to_excel
Установка библиотеки openpyxl
Для записи в таблицу нам понадобиться установить библиотеку openpyxl
Сохранение данных
Список всех поддерживаемых форматов
К сожалению, pandas не в полном объеме поддерживает запись во все форматы, которые он умеет читать, но с большинством из них нет никаких проблем.
Тип данных | Формат данных | Используемый метод |
---|---|---|
Текстовый | CSV | to_csv |
Текстовый | JSON | to_json |
Текстовый | HTML | to_html |
Текстовый | Буфер обмена | to_clipboard |
Бинарный | MS Excel | to_excel |
Бинарный | HDF5 Format | to_hdf |
Бинарный | Feather Format | to_feather |
Бинарный | Parquet Format | to_parquet |
Бинарный | Msgpack | to_msgpack |
Бинарный | Stata | to_stata |
Бинарный | Python Pickle Format | to_pickle |
SQL | SQL | to_sql |
SQL | Google BigQuery | to_gbq |
Визуализация данных
Визуализация это большая часть работы в анализе и обработке данных. Не будем сильно углубляться и рассмотрим простой пример визуализации наших данных.
Установка библиотеки matplotlib
Для рисования графиков нам понадобится эта библиотека
Создание графиков
Самый просто способ сгенерировать график, это передать обработчику данные для одной из координат, для второй он возьмет информацию из индекса.
После выполнения программы мы увидим вот такой график
Можно повторить тоже самое но только для 2018 года
Объединение данных на одном графике
У нас есть отдельный график для 2017 и 2018 года, но как их объединить в одной диаграмме? Очень просто, нужно использовать метод pivot из библиотеки pandas.
Заключение
На это обзор библиотеки pandas подошел к концу, если у вас возникли вопросы, не стесняйтесь задавать их в комментариях.
[expert_bq id=»1570″]В качестве примера будем использовать готовый файл excel из которого мы сначала считаем данные из первой ячейки, а затем запишем их во вторую. Если же вы хотите что-то уточнить, обращайтесь ко мне![/expert_bq] Это, например, библиотека Matplotlib, Plotly, фреймворк Streamlit и библиотека для статистических графиков Seaborn (все это — инструменты для визуализации данных). С их помощью вы можете прекрасно визуализировать данные, а также создавать интерактивные информационные панели и графики.VBA и Python для автоматизации Excel и MS Office | Tech&Biz Insights
DataFrame — если говорить простыми словами, то эта структура данных представляет из себя обычную таблицу. Иными словами табличная структура данных. Как и во всех таблицах она состоит из строк и столбцов. Столбцами выступают объекты Series, а строки его элементы.
Тип данных | Формат данных | Используемый метод |
---|---|---|
Текстовый | CSV | read_csv |
Текстовый | Fixed-Width Text File | read_fwf |
Текстовый | JSON | read_json |
Текстовый | HTML | read_html |
Текстовый | Буфер обмена | read_clipboard |
Бинарный | MS Excel | read_excel |
Бинарный | OpenDocument | read_excel |
Бинарный | HDF5 Format | read_hdf |
Бинарный | Feather Format | read_feather |
Бинарный | Parquet Format | read_parquet |
Бинарный | ORC Format | read_orc |
Бинарный | Msgpack | read_msgpack |
Бинарный | Stata | read_stata |
Бинарный | SAS | read_sas |
Бинарный | SPSS | read_spss |
Бинарный | Python Pickle Format | read_pickle |
SQL | SQL | read_sql |
SQL | Google BigQuery | read_gbq |