- Изучаем pandas. Урок 1. Введение в pandas и его установка
- Что такое pandas?
- Установка pandas
- Документация по модулю Python Pandas
- Начало работы
- Pandas — структуры данных
- 1 Серия
- 2 DataFrame
- 3 Panel
- Импорт данных из файла CSV в DataFrame
- Статистический анализ в Pandas
- Функция sum()
- функция mean()
- Библиотека Pandas в Python
- Установка и начало работы с Pandas
- Структуры данных
- DataFrame
- Импорт данных из CSV
- Проверка данных
- 1. Получение статистической сводки записей
- 2. Сортировка записей
- 3. Нарезка записей
- 4. Фильтрация данных
- 5. Переименование столбца
- 6. Сбор данных
- а. merge()
- b. Группировка
- c. Конкатенация
- Создание DataFrame, переход Dict в Series
- Выбор столбца, добавление и удаление
- Заключение
Изучаем pandas. Урок 1. Введение в pandas и его установка
Это первый урок из цикла, посвященного библиотеке p andas. Данный цикл будет входить в большую группу обучающих материалов, тематику которых можно определить как “Машинное обучение и анализ данных”. pandas – это удобный и быстрый инструмент для работы с данными, обладающий большим функционалом.
Что такое pandas?
Если очень кратко, то pandas – это библиотека, которая предоставляет очень удобные с точки зрения использования инструменты для хранения данных и работе с ними. Если вы занимаетесь анализом данных или машинным обучением и при этом используете язык Python , то вы просто обязаны знать и уметь работать с pandas .
pandasвходи в группу проектов, спонсируемых numfocus . Numfocus – это организация, которая поддерживает различные проекты, связанные с научными вычислениями.
Официальный сайт pandas находится здесь . Стоит отметить, что документация по этому продукту очень хорошая . Если вы знаете английский язык, то для вас не будет большой проблемой разобраться с pandas .
Особенность pandas состоит в том, что эта библиотека очень быстрая, гибкая и выразительная. Это важно, т.к. она используется с языком Python , который не отличается высокой производительностью. pandas прекрасно подходит для работы с одномерными и двумерными таблицами данных, хорошо интегрирован с внешним миром – есть возможность работать с файлами CSV , таблицами Excel , может стыковаться с языком R .
Установка pandas
Для проведения научных расчетов, анализа данных или построения моделей в рамках машинно обучения для языка Python существуют прекрасное решение – Anaconda . Anaconda – это пакет, который содержит в себе большой набор различных библиотек, интерпретатор языка Python и несколько сред для разработки. Подробно об установке пакета Anaconda написано в этой статье .
pandas присутствует в стандартной поставке Anaconda . Если же его там нет, то его можно установить отдельно. Для этого стоит воспользоваться пакетным менеджером, который входит в состав Anaconda , который называется conda . Для его запуска необходимо перейти в каталог [Anaconda install path]\Scripts\ в Windows . В операционной системе Linux , после установки Anaconda менеджер conda должен быть доступен везде.
Введите командной строке:
В случае, если требуется конкретная версия pandas , то ее можно указать при установке.
При необходимости, можно воспользоваться пакетным менеджером pip , входящим в состав дистрибутива Python .
Если вы используете Linux , то ещё одни способ установить pandas – это воспользоваться пакетным менеджером самой операционной системы. Для Ubuntu это выглядит так:
После установки необходимо проверить, что pandas установлен и корректно работает. Для этого запустите интерпретатор Python и введите в нем следующие команды.
В результате в окне терминала должен появиться следующий текст:
Это будет означать, что pandas установлен и его можно использовать.
Документация по модулю Python Pandas
Модуль Python Pandas представляет собой модуль с открытым исходным кодом. Он имеет широкую сферу применения в области вычислений, анализа данных, статистики и т. д.
Начало работы
Прежде чем разобраться в функциях модуля Pandas, нам необходимо установить модуль (проверка совместимости версии Python с версией модуля, который вы хотите установить, с помощью официальной документации модуля Pandas).
Есть разные способы установить модуль Python Pandas. Один из самых простых способов — установить с помощью установщика пакетов Python, то есть PIP.
Введите следующую команду в командной строке:
pip install pandas
Чтобы добавить модуль Pandas и NumPy в ваш код, нам необходимо импортировать эти модули в наш код.
Pandas — структуры данных
Pandas работает со следующими структурами данных:
Эти структуры данных быстрее по сравнению с массивами NumPy.
1 Серия
Pandas Series — это одномерная структура, напоминающая массивы, содержащие однородные данные. Это линейная структура данных, в которой элементы хранятся в одном измерении.
Примечание. Размер структуры данных серии в Pandas является неизменным, т.е. однажды установленный, он не может быть изменен динамически. При этом значения и элементы в серии можно изменять.
Синтаксис:
pandas.Series(input_data, index, data_type, copy)
- input_data: принимает ввод в виде списка, константы, массива NumPy, Dict и т. д.
- index: значения индекса, переданные в данные.
- data_type: распознает тип данных.
- copy: Копирует данные. Значение по умолчанию неверно.
В приведенном выше фрагменте кода мы предоставили ввод с использованием массивов NumPy и установили значения индекса для входных данных.
Выход:
10 John
11 Bran
12 Sam
13 Peter
dtype: object
2 DataFrame
Модуль Python Pandas предоставляет DataFrame, который представляет собой двумерную структуру, напоминающую двумерные массивы. Здесь входные данные оформляются в виде строк и столбцов.
Примечание. Размер структуры данных DataFrame в Pandas можно изменять.
Синтаксис:
pandas.DataFrame(input_data, index_value, columns, data_type, copy)
- input_data: принимает ввод как списки, ряды, массивы NumPy, Dict, другой DataFrame и т. д.
- значения индекса: значения индекса, передаваемые в данные.
- data_type: распознает тип данных каждого столбца.
- copy: скопировать данные. Значение по умолчанию неверно.
- столбцы: метки данные столбцов.
В приведенном выше коде мы предоставили ввод с помощью списков, добавили метки: «Имя» и «Город» к столбцам и установили для них значения индекса.
Выход:
Name City
1 John Pune
2 Bran Mumbai
3 Peter Delhi
3 Panel
Модуль Python Pandas предлагает панель, которая представляет собой трехмерную структуру данных и содержит 3 оси для выполнения следующих функций:
- items: (ось 0). Каждый его элемент соответствует DataFrame в нем.
- major_axis: (ось 1) Соответствует строкам каждого DataFrame.
- minor_axis: (ось 2) соответствует столбцам каждого DataFrame.
Синтаксис:
pandas.Panel(input_data, items, major_axis, minor_axis, data_type, copy)
Импорт данных из файла CSV в DataFrame
Модуль DataFrame Python Pandas также может быть построен с использованием файлов CSV. Файл CSV — это в основном текстовый файл, в котором хранятся данные для каждой строки. Элементы разделяются запятой.
Метод read_csv (file_name) используется для чтения данных из файла CSV в DataFrame.
Синтаксис:
pandas.read_csv()
Пример:
Выход:
Name Age
0 John 21
1 Bran 22
Статистический анализ в Pandas
Модуль Python Pandas предлагает большое количество встроенных методов, помогающих пользователям проводить статистический анализ данных.
Ниже приводится список некоторых наиболее часто используемых функций для статистического анализа:
Метод | Description |
---|---|
count() | Подсчитывает количество всех непустых наблюдений |
sum() | Возвращает сумму элементов данных. |
mean() | Возвращает среднее значение всех элементов данных. |
median() | Возвращает медианное значение всех элементов данных. |
mode() | Возвращает режим всех элементов данных |
std() | Возвращает стандартное отклонение всех элементов данных. |
min() | Возвращает минимальный элемент данных среди всех входных элементов. |
max() | Возвращает максимальный элемент данных среди всех входных элементов. |
abs() | Возвращает абсолютное значение. |
prod() | Возвращает произведение значений данных. |
cumsum() | Возвращает кумулятивную сумму значений данных. |
cumprod() | Возвращает совокупное произведение значений данных. |
describe() | Он отображает статистическую сводку всех записей за один снимок, т.е. (сумма, количество, мин, среднее и т. Д.) |
Для начала давайте создадим DataFrame, который мы будем использовать в этом разделе для понимания различных функций, предоставляемых для статистического анализа.
Функция sum()
Как видно выше, функция sum() добавляет данные каждого столбца отдельно и добавляет строковые значения везде, где они есть.
функция mean()
Выход:
Marks 59.8
Roll_num 3.0
dtype: float64
Функция mean не будет воздействовать на строки, найденные в данных, в отличие от функции sum().
Библиотека Pandas в Python
Pandas – это библиотека с открытым исходным кодом на Python. Она предоставляет готовые к использованию высокопроизводительные структуры данных и инструменты анализа данных.
- Модуль Pandas работает поверх NumPy и широко используется для обработки и анализа данных.
- NumPy – это низкоуровневая структура данных, которая поддерживает многомерные массивы и широкий спектр математических операций с массивами. Pandas имеет интерфейс более высокого уровня. Он также обеспечивает оптимизированное согласование табличных данных и мощную функциональность временных рядов.
- DataFrame – это ключевая структура данных в Pandas. Это позволяет нам хранить и обрабатывать табличные данные, как двумерную структуру данных.
- Pandas предоставляет богатый набор функций для DataFrame. Например, выравнивание данных, статистика данных, нарезка, группировка, объединение, объединение данных и т.д.
Установка и начало работы с Pandas
Для установки модуля Pandas вам потребуется Python 2.7 и выше.
Если вы используете conda, вы можете установить его, используя команду ниже.
Если вы используете PIP, выполните команду ниже, чтобы установить модуль pandas.
Чтобы импортировать Pandas и NumPy в свой скрипт Python, добавьте следующий фрагмент кода:
Поскольку Pandas зависит от библиотеки NumPy, нам нужно импортировать эту зависимость.
Структуры данных
Модуль Pandas предоставляет 3 структуры данных, а именно:
- Series: это одномерный массив неизменного размера, подобный структуре, имеющей однородные данные.
- DataFrames: это двумерная табличная структура с изменяемым размером и неоднородно типизированными столбцами.
- Panel: это трехмерный массив с изменяемым размером.
DataFrame
DataFrame – самая важная и широко используемая структура данных, а также стандартный способ хранения данных. Она содержит данные, выровненные по строкам и столбцам, как в таблице SQL или в базе данных электронной таблицы.
Мы можем либо жестко закодировать данные в DataFrame, либо импортировать файл CSV, файл tsv, файл Excel, таблицу SQL и т.д.
Мы можем использовать приведенный ниже конструктор для создания объекта DataFrame.
Ниже приводится краткое описание параметров:
- data – создать объект DataFrame из входных данных. Это может быть список, dict, series, Numpy ndarrays или даже любой другой DataFrame;
- index – имеет метки строк;
- columns – используются для создания подписей столбцов;
- dtype – используется для указания типа данных каждого столбца, необязательный параметр;
- copy – используется для копирования данных, если есть.
Есть много способов создать DataFrame. Мы можем создать объект из словарей или списка словарей. Мы также можем создать его из списка кортежей, CSV, файла Excel и т.д.
Давайте запустим простой код для создания DataFrame из списка словарей.
Первый шаг – создать словарь. Второй шаг – передать словарь в качестве аргумента в метод DataFrame(). Последний шаг – распечатать DataFrame.
Как видите, DataFrame можно сравнить с таблицей, имеющей неоднородное значение. Кроме того, можно изменить размер.
Мы предоставили данные в виде карты, и ключи карты рассматриваются Pandas, как метки строк.
Индекс отображается в крайнем левом столбце и имеет метки строк. Заголовок столбца и данные отображаются в виде таблицы.
Также возможно создавать индексированные DataFrames. Это можно сделать, настроив параметр индекса.
Импорт данных из CSV
Мы также можем создать DataFrame, импортировав файл CSV. Файл CSV – это текстовый файл с одной записью данных в каждой строке. Значения в записи разделяются символом «запятая».
Pandas предоставляет полезный метод с именем read_csv() для чтения содержимого файла CSV.
Например, мы можем создать файл с именем «cities.csv», содержащий подробную информацию о городах Индии. Файл CSV хранится в том же каталоге, что и сценарии Python. Этот файл можно импортировать с помощью:
Наша цель – загрузить данные и проанализировать их, чтобы сделать выводы. Итак, мы можем использовать любой удобный способ загрузки данных.
Проверка данных
Точно так же print (df.dtypes) печатает типы данных.
print (df.index) печатает index.
print (df.columns) печатает столбцы DataFrame.
print (df.values) отображает значения таблицы.
1. Получение статистической сводки записей
Функция df.describe() отображает статистическую сводку вместе с типом данных.
2. Сортировка записей
3. Нарезка записей
Интересной особенностью библиотеки Pandas является выбор данных на основе меток строк и столбцов с помощью функции iloc [0].
Часто для анализа может потребоваться всего несколько столбцов. Мы также можем выбрать по индексу, используя loc [‘index_one’]).
Например, чтобы выбрать вторую строку, мы можем использовать df.iloc [1 ,:].
Допустим, нам нужно выбрать второй элемент второго столбца. Это можно сделать с помощью функции df.iloc [1,1]. В этом примере функция df.iloc [1,1] отображает в качестве вывода «Мумбаи».
4. Фильтрация данных
Для фильтрации по условию можно использовать любой оператор сравнения.
5. Переименование столбца
Аргумент inplace = True вносит изменения в DataFrame.
6. Сбор данных
Наука о данных включает в себя обработку данных, чтобы данные могли хорошо работать с алгоритмами данных. Data Wrangling – это процесс обработки данных, такой как слияние, группировка и конкатенация.
Библиотека Pandas предоставляет полезные функции, такие как merge(), groupby() и concat() для поддержки задач Data Wrangling.
а. merge()
Мы видим, что функция merge() возвращает строки из обоих DataFrames, имеющих то же значение столбца, которое использовалось при слиянии.
b. Группировка
Поле «Employee_name» со значением «Meera» сгруппировано по столбцу «Employee_name». Пример вывода приведен ниже:
c. Конкатенация
Создание DataFrame, переход Dict в Series
Мы создали серию. Вы можете видеть, что отображаются 2 столбца. Первый столбец содержит значения индекса, начиная с 0. Второй столбец содержит элементы, переданные как серии.
Можно создать DataFrame, передав словарь Series. Давайте создадим DataFrame, который формируется путем объединения и передачи индексов ряда.
Для первой серии, поскольку мы не указали метку ‘d’, возвращается NaN.
Выбор столбца, добавление и удаление
Приведенный выше код печатает только столбец «Matches played» в DataFrame.
Заключение
В этом руководстве у нас было краткое введение в библиотеку Pandas в Python. Мы также сделали практические примеры, чтобы раскрыть возможности библиотеки, используемой в области науки о данных. Мы также рассмотрели различные структуры данных в библиотеке Python.