- Начало работы¶
- Введение в pandas¶
- Предшественники¶
- Учебные материалы¶
- Библиотека Pandas в Python
- Установка и начало работы с Pandas
- Структуры данных
- DataFrame
- Импорт данных из CSV
- Проверка данных
- 1. Получение статистической сводки записей
- 2. Сортировка записей
- 3. Нарезка записей
- 4. Фильтрация данных
- 5. Переименование столбца
- 6. Сбор данных
- а. merge()
- b. Группировка
- c. Конкатенация
- Создание DataFrame, переход Dict в Series
- Выбор столбца, добавление и удаление
- Заключение
Начало работы¶
pandas является частью дистрибутива Anaconda и может быть установлен вместе с Anaconda или Miniconda:
pandas можно установить через pip из PyPI.
Нужны подробные инструкции?
Устанавливаете конкретную версию? Устанавливаете из исходников? Загляните на страницу расширенной установки.
Введение в pandas¶
pandas — подходящий инструмент для работы с табличными данными, такими как данные в электронных таблицах или базах данных. pandas поможет вам исследовать, очищать и обрабатывать ваши данные. В pandas таблица данных называется DataFrame .
В руководстве пользователя
pandas поддерживает интеграцию со многими форматами файлов или источниками данных «из коробки» (csv, excel, sql, json, parquet и другими). Импорт данных из таких источников обеспечивается функцией с префиксом read_* . Точно так же методы to_* используются для сохранения данных.
В руководстве пользователя
Выбор или фильтрация определенных строк или столбцов? Фильтрация данных по условию? В pandas доступны методы для получения срезов, выбора и извлечения необходимых данных.
В руководстве пользователя
pandas обеспечивает построение диаграмм «из коробки», используя возможности Matplotlib. Вы можете выбрать тип диаграммы (точечная, гистограмма, диаграмма размаха и так далее), соответствующий вашим данным.
В руководстве пользователя
Для выполнения вычислений не нужно перебирать все строки таблицы. Манипуляции с данными в столбце работают поэлементно. Добавить столбец в DataFrame на основе существующих данных в других столбцах очень просто.
В руководстве пользователя
Основные статистические показатели (среднее, медиана, минимум, максимум и прочее) легко поддаются вычислению. Стандартный либо пользовательский набор показателей можно получить для всего набора данных, скользящего окна данных или группировок по категориям. Последнее еще называют подходом «разделить-применить-объединить».
В руководстве пользователя
Изменяйте структуру таблицы данных несколькими способами. Функцией melt() можно преобразовать таблицу данных из широкого в длинный (аккуратный) формат, а функцией pivot() — из длинного в широкий формат. Благодаря встроенным агрегирующим функциям сводная таблица создается с помощью одной команды.
В руководстве пользователя
Несколько таблиц можно объединить как по столбцам, так и по строкам, поскольку для объединения нескольких таблиц данных предусмотрены операции объединения, как в базах данных.
В руководстве пользователя
pandas отлично поддерживает временные ряды и имеет обширный набор инструментов для работы с датами, временем и с данными, индексированными по времени.
В руководстве пользователя
Наборы данных содержат не только числовые данные. pandas предоставляет широкий набор функций для очистки текстовых данных и извлечения из них полезной информации.
В руководстве пользователя
Предшественники¶
Знакомы ли вы с другим программным обеспечением для обработки табличных данных? Изучите операции, которые эквивалентны в pandas и в программном обеспечении, которое вы уже знаете:
Язык программирования R предоставляет структуру данных data.frame и несколько пакетов, таких как tidyverse , для удобной обработки данных, аналогично pandas.
Уже знакомы с SELECT , GROUP BY , JOIN и так далее? Большинство этих запросов к SQL имеют эквиваленты в pandas.
data set , включенный в пакет статистического программного обеспечения STATA , соответствует DataFrame в pandas. Многие операции из STATA имеют эквивалент в pandas.
Пользователи Excel или других программ для работы с электронными таблицами обнаружат, что многие концепции можно перенести на pandas.
Набор статистического программного обеспечения SAS также предоставляет data set , соответствующий DataFrame в pandas. Кроме того, векторизованные операции SAS, фильтрация, операции обработки строк и многое другое имеют аналогичные функции в pandas.
Учебные материалы¶
Краткий обзор функциональности pandas см. в статье 10 Minutes to pandas.
Вы можете обратиться к шпаргалке по pandas, в ней в сжатом виде приведена информация об управлении данными в pandas.
Сообщество выпускает множество учебных пособий, доступных в Интернете. Некоторые материалы включены в список предоставленных сообществом (см. раздел Учебные материалы сообщества ).
Библиотека Pandas в Python
Pandas – это библиотека с открытым исходным кодом на Python. Она предоставляет готовые к использованию высокопроизводительные структуры данных и инструменты анализа данных.
- Модуль Pandas работает поверх NumPy и широко используется для обработки и анализа данных.
- NumPy – это низкоуровневая структура данных, которая поддерживает многомерные массивы и широкий спектр математических операций с массивами. Pandas имеет интерфейс более высокого уровня. Он также обеспечивает оптимизированное согласование табличных данных и мощную функциональность временных рядов.
- DataFrame – это ключевая структура данных в Pandas. Это позволяет нам хранить и обрабатывать табличные данные, как двумерную структуру данных.
- Pandas предоставляет богатый набор функций для DataFrame. Например, выравнивание данных, статистика данных, нарезка, группировка, объединение, объединение данных и т.д.
Установка и начало работы с Pandas
Для установки модуля Pandas вам потребуется Python 2.7 и выше.
Если вы используете conda, вы можете установить его, используя команду ниже.
Если вы используете PIP, выполните команду ниже, чтобы установить модуль pandas.
Чтобы импортировать Pandas и NumPy в свой скрипт Python, добавьте следующий фрагмент кода:
import pandas as pd import numpy as np
Поскольку Pandas зависит от библиотеки NumPy, нам нужно импортировать эту зависимость.
Структуры данных
Модуль Pandas предоставляет 3 структуры данных, а именно:
- Series: это одномерный массив неизменного размера, подобный структуре, имеющей однородные данные.
- DataFrames: это двумерная табличная структура с изменяемым размером и неоднородно типизированными столбцами.
- Panel: это трехмерный массив с изменяемым размером.
DataFrame
DataFrame – самая важная и широко используемая структура данных, а также стандартный способ хранения данных. Она содержит данные, выровненные по строкам и столбцам, как в таблице SQL или в базе данных электронной таблицы.
Мы можем либо жестко закодировать данные в DataFrame, либо импортировать файл CSV, файл tsv, файл Excel, таблицу SQL и т.д.
Мы можем использовать приведенный ниже конструктор для создания объекта DataFrame.
pandas.DataFrame(data, index, columns, dtype, copy)
Ниже приводится краткое описание параметров:
- data – создать объект DataFrame из входных данных. Это может быть список, dict, series, Numpy ndarrays или даже любой другой DataFrame;
- index – имеет метки строк;
- columns – используются для создания подписей столбцов;
- dtype – используется для указания типа данных каждого столбца, необязательный параметр;
- copy – используется для копирования данных, если есть.
Есть много способов создать DataFrame. Мы можем создать объект из словарей или списка словарей. Мы также можем создать его из списка кортежей, CSV, файла Excel и т.д.
Давайте запустим простой код для создания DataFrame из списка словарей.
import pandas as pd import numpy as np df = pd.DataFrame(< "State": ['Andhra Pradesh', 'Maharashtra', 'Karnataka', 'Kerala', 'Tamil Nadu'], "Capital": ['Hyderabad', 'Mumbai', 'Bengaluru', 'Trivandrum', 'Chennai'], "Literacy %": [89, 77, 82, 97,85], "Avg High Temp(c)": [33, 30, 29, 31, 32 ] >) print(df)
Первый шаг – создать словарь. Второй шаг – передать словарь в качестве аргумента в метод DataFrame(). Последний шаг – распечатать DataFrame.
Как видите, DataFrame можно сравнить с таблицей, имеющей неоднородное значение. Кроме того, можно изменить размер.
Мы предоставили данные в виде карты, и ключи карты рассматриваются Pandas, как метки строк.
Индекс отображается в крайнем левом столбце и имеет метки строк. Заголовок столбца и данные отображаются в виде таблицы.
Также возможно создавать индексированные DataFrames. Это можно сделать, настроив параметр индекса.
Импорт данных из CSV
Мы также можем создать DataFrame, импортировав файл CSV. Файл CSV – это текстовый файл с одной записью данных в каждой строке. Значения в записи разделяются символом «запятая».
Pandas предоставляет полезный метод с именем read_csv() для чтения содержимого файла CSV.
Например, мы можем создать файл с именем «cities.csv», содержащий подробную информацию о городах Индии. Файл CSV хранится в том же каталоге, что и сценарии Python. Этот файл можно импортировать с помощью:
import pandas as pd data = pd.read_csv('cities.csv') print(data)
Наша цель – загрузить данные и проанализировать их, чтобы сделать выводы. Итак, мы можем использовать любой удобный способ загрузки данных.
Проверка данных
Точно так же print (df.dtypes) печатает типы данных.
print (df.index) печатает index.
print (df.columns) печатает столбцы DataFrame.
print (df.values) отображает значения таблицы.
1. Получение статистической сводки записей
Функция df.describe() отображает статистическую сводку вместе с типом данных.
2. Сортировка записей
print(df.sort_values('Literacy %', ascending=False))
3. Нарезка записей
Интересной особенностью библиотеки Pandas является выбор данных на основе меток строк и столбцов с помощью функции iloc [0].
Часто для анализа может потребоваться всего несколько столбцов. Мы также можем выбрать по индексу, используя loc [‘index_one’]).
Например, чтобы выбрать вторую строку, мы можем использовать df.iloc [1 ,:].
Допустим, нам нужно выбрать второй элемент второго столбца. Это можно сделать с помощью функции df.iloc [1,1]. В этом примере функция df.iloc [1,1] отображает в качестве вывода «Мумбаи».
4. Фильтрация данных
Для фильтрации по условию можно использовать любой оператор сравнения.
print(df[df['State'].isin(['Karnataka', 'Tamil Nadu'])])
5. Переименование столбца
df.rename(columns = , inplace=True) print(df.head())
Аргумент inplace = True вносит изменения в DataFrame.
6. Сбор данных
Наука о данных включает в себя обработку данных, чтобы данные могли хорошо работать с алгоритмами данных. Data Wrangling – это процесс обработки данных, такой как слияние, группировка и конкатенация.
Библиотека Pandas предоставляет полезные функции, такие как merge(), groupby() и concat() для поддержки задач Data Wrangling.
import pandas as pd d = < 'Employee_id': ['1', '2', '3', '4', '5'], 'Employee_name': ['Akshar', 'Jones', 'Kate', 'Mike', 'Tina'] >df1 = pd.DataFrame(d, columns=['Employee_id', 'Employee_name']) print(df1)
import pandas as pd data = < 'Employee_id': ['4', '5', '6', '7', '8'], 'Employee_name': ['Meera', 'Tia', 'Varsha', 'Williams', 'Ziva'] >df2 = pd.DataFrame(data, columns=['Employee_id', 'Employee_name']) print(df2)
а. merge()
print(pd.merge(df1, df2, on='Employee_id'))
Мы видим, что функция merge() возвращает строки из обоих DataFrames, имеющих то же значение столбца, которое использовалось при слиянии.
b. Группировка
import pandas as pd import numpy as np data = < 'Employee_id': ['4', '5', '6', '7', '8'], 'Employee_name': ['Meera', 'Meera', 'Varsha', 'Williams', 'Ziva'] >df2 = pd.DataFrame(data) group = df2.groupby('Employee_name') print(group.get_group('Meera'))
Поле «Employee_name» со значением «Meera» сгруппировано по столбцу «Employee_name». Пример вывода приведен ниже:
c. Конкатенация
Создание DataFrame, переход Dict в Series
series_sample = pd.Series([100, 200, 300, 400]) print(series_sample)
Мы создали серию. Вы можете видеть, что отображаются 2 столбца. Первый столбец содержит значения индекса, начиная с 0. Второй столбец содержит элементы, переданные как серии.
Можно создать DataFrame, передав словарь Series. Давайте создадим DataFrame, который формируется путем объединения и передачи индексов ряда.
d = df = pd.DataFrame(d) print(df)
Для первой серии, поскольку мы не указали метку ‘d’, возвращается NaN.
Выбор столбца, добавление и удаление
d = df = pd.DataFrame(d) print(df['Matches played'])
Приведенный выше код печатает только столбец «Matches played» в DataFrame.
d = df = pd.DataFrame(d) df['Runrate']=pd.Series([80, 70, 60, 50], index=['Sachin', 'Kohli', 'Raina', 'Dravid']) print(df)
Заключение
В этом руководстве у нас было краткое введение в библиотеку Pandas в Python. Мы также сделали практические примеры, чтобы раскрыть возможности библиотеки, используемой в области науки о данных. Мы также рассмотрели различные структуры данных в библиотеке Python.