Использование пакета pandas в Python 3
Пакет pandas в Python 3 используется для управления и анализа данных (в том числе помеченных и реляционных данных).
Разработанный на основе библиотеки numpy, пакет pandas включает в себя метки и описательные индикаторы. Пакет pandas особенно производителен и надёжен при работе с распространенными форматами данных и пропущенными данными.
Пакет pandas предоставляет функции для работы с электронными таблицами; чтобы повысить производительность pandas при работе с данными, используйте Python вместо электронных таблиц.
Данное руководство поможет установить pandas и ознакомит вас с основными структурами данных: Series и DataFrames
Установка pandas
Как и другие пакеты Python, pandas можно установить с помощью менеджера pip.
Читайте также:
Разверните среду разработки и установите pandas и зависимости пакета:
pip install pandas numpy python-dateutil pytz
Команда должна вернуть примерно следующее:
Successfully installed pandas-0.19.2
Чтобы установить pandas в Anaconda, запустите команду:
conda install pandas
Теперь вы можете приступать к работе с pandas.
Структура данных Series
В pandas Series – это одномерные массивы, которые могут содержать любой тип данных. Метки осей называют индексом.
Запустите интерпретатор Python в командной строке:
Теперь импортируйте пакеты numpy и pandas в пространство имен:
import numpy as np
import pandas as pd
Общая структура Series имеет такой вид:
s = pd.Series([data], index=[index])
Обратите внимание: эта структура очень похожа на список Python.
Работа без индекса
Введите целочисленные данные, а затем добавьте параметр name для Series; в этот раз попробуем работать с pandas без индексации, потому не используйте параметр index.
s = pd.Series([0, 1, 4, 9, 16, 25], name=’Squares’)
Теперь вызовите данные:
На экране появится следующий вывод: индекс будет в левом столбце, а значения данных – в правом столбце. Под столбцами вы увидите имя Series и представленный тип данных.
0 0
1 1
2 4
3 9
4 16
5 25
Name: Squares, dtype: int64
Вышеприведённый пример показал, что pandas может выполнять автоматическую индексацию массива.
Индексация в pandas
Кроме того, вы можете сами задавать индексы в Series. Давайте создадим массив, содержащий данные о средней глубине океанов Земли в метрах:
avg_ocean_depth = pd.Series([1205, 3646, 3741, 4080, 3270], index=[‘Arctic’, ‘Atlantic’, ‘Indian’, ‘Pacific’, ‘Southern’])
avg_ocean_depth
Arctic 1205
Atlantic 3646
Indian 3741
Pacific 4080
Southern 3270
dtype: int64
Указанные вами индексы находятся слева, а значения – справа.
Индексация и срез Series
Пакет pandas позволяет извлекать значения по номеру индекса:
Также по индексу можно создавать и извлекать срезы:
avg_ocean_depth[2:4] Indian 3741
Pacific 4080
dtype: int64
Извлечь данные можно и по значению индекса, например:
Значения индекса можно использовать для создания срезов:
avg_ocean_depth[‘Indian’:’Southern’] Indian 3741
Pacific 4080
Southern 3270
dtype: int64
Обратите внимание: при создании среза по значению индекса оба индекса используются включительно.
Чтобы остановить интерпретатор Python, введите quit().
Использование словарей в Series
Пакет pandas позволяет использовать словари для инициализации Series.
Читайте также: Словари в Python 3
То есть, вместо индексов можно использовать встроенные ключи.
Создайте файл ocean.py и добавьте следующий словарь с функцией отображения:
import numpy as np
import pandas as pd
avg_ocean_depth = pd.Series( <
‘Arctic’: 1205,
‘Atlantic’: 3646,
‘Indian’: 3741,
‘Pacific’: 4080,
‘Southern’: 3270
>)
print(avg_ocean_depth)
Запустите файл в командной строке:
Arctic 1205
Atlantic 3646
Indian 3741
Pacific 4080
Southern 3270
dtype: int64
Данные Series отображаются в организованном порядке, индексы (представленные ключами) находятся слева, а множество значений – справа.
Как и при работе со словарями Python, вы можете получить доступ к значению, вызвав соответствующий ключ:
.
print(avg_ocean_depth[‘Indian’])
print(avg_ocean_depth[‘Atlantic’:’Indian’])
Output
3741
Atlantic 3646
Indian 3741
dtype: int64
Однако такие данные Series являются объектами Python, потому функции словарей доступны не будут.
Структура данных DataFrame
DataFrame – это двухмерные структуры помеченных данных, столбцы которых могут содержать разные типы данных.
Данные DataFrame похожи на электронную таблицу или таблицу SQL. В целом DataFrame – самый распространённый объект при работе с pandas.
Чтобы понять, как работает DataFrame, создайте две структуры Series и передайте их DataFrame. Первая структура Series – это avg_ocean_depth (из вышеприведённого примера), а вторая структура будет называться max_ocean_depth и содержать данные о максимальной глубине каждого океана в метрах. Откройте файл ocean.py и добавьте в него:
import numpy as np
import pandas as pd
avg_ocean_depth = pd.Series( <
‘Arctic’: 1205,
‘Atlantic’: 3646,
‘Indian’: 3741,
‘Pacific’: 4080,
‘Southern’: 3270
>)
max_ocean_depth = pd.Series( <
‘Arctic’: 5567,
‘Atlantic’: 8486,
‘Indian’: 7906,
‘Pacific’: 10803,
‘Southern’: 7075
>)
Структуры Series готовы. Теперь добавьте в конец файла DataFrame (под max_ocean_depth). В данном примере обе структуры Series имеют одинаковые метки индексов; если бы структуры Series имели разные метки индексов, пропущенные значения были бы помечены как NaN.
.
max_ocean_depth = pd.Series( <
‘Arctic’: 5567,
‘Atlantic’: 8486,
‘Indian’: 7906,
‘Pacific’: 10803,
‘Southern’: 7075
>)
ocean_depths = pd.DataFrame( <
‘Avg. Depth (m)’: avg_ocean_depth,
‘Max. Depth (m)’: max_ocean_depth
>)
В массив можно добавить метки столбцов, которые объявлены как ключи переменных Series. Чтобы увидеть DataFrame, отобразите данные:
print(ocean_depths)
Avg. Depth (m) Max. Depth (m)
Arctic 1205 5567
Atlantic 3646 8486
Indian 3741 7906
Pacific 4080 10803
Southern 3270 7075
В результате на экране появится два столбца с соответствующими заголовками, числовые данные справа и метки из словаря (ключи) слева.
Сортировка данных в DataFrame
Вы можете сортировать данные в DataFrame с помощью функции DataFrame.sort_values(by=…).
Для примера используем логический параметр ascending, который может быть истинным или ложным (True или False). Параметр ascending можно передать функции, а descending – нельзя.
.
print(ocean_depths.sort_values(‘Avg. Depth (m)’, ascending=True))
Output
Avg. Depth (m) Max. Depth (m)
Arctic 1205 5567
Southern 3270 7075
Atlantic 3646 8486
Indian 3741 7906
Pacific 4080 10803
Теперь в выводе значения расположены в порядке возрастания.
DataFrame и статистический анализ
Пакет pandas позволяет собирать общие статистические данные с помощью функции DataFrame.describe().
Без дополнительных параметров функция DataFrame.describe() предоставит следующую информацию для числовых типов данных:
Вывод
Что это значит?
Запросите статистику структуры ocean_depths с помощью функции describe().
На экране появятся данные:
Avg. Depth (m) Max. Depth (m)
count 5.000000 5.000000
mean 3188.400000 7967.400000
std 1145.671113 1928.188347
min 1205.000000 5567.000000
25% 3270.000000 7075.000000
50% 3646.000000 7906.000000
75% 3741.000000 8486.000000
max 4080.000000 10803.000000
Обработка пропущенных значений
Пропущенные значения часто встречаются при работе с данными. Пакет pandas предоставляет множество способов обработки пропущенных данных (данных null), то есть тех данных, которые были пропущены по той или иной причине. В pandas такие данные называются данными NA и отображаются как NaN.
Рассмотрим некоторые функции работы с пропущенными данными (например, сброс и заполнение). Для сброса используется функция DataFrame.dropna(), а для заполнения – DataFrame.fillna().
Создайте файл user_data.py, добавьте в него данные с пропущенными значениями и превратите в DataFrame:
import numpy as np
import pandas as pd
user_data = <'first_name': ['Sam', 'Jesse', np.nan, 'Jamie'],
‘last_name’: [‘Smith’, ‘Jones’, np.nan, ‘Miller’],
‘online’: [True, np.nan, False, True],
‘followers’: [987, 432, 321, np.nan]>
df = pd.DataFrame(user_data, columns = [‘first_name’, ‘last_name’, ‘online’, ‘followers’])
print(df)
Теперь отобразите данные:
first_name last_name online followers
0 Sam Smith True 987.0
1 Jesse Jones NaN 432.0
2 NaN NaN False 321.0
3 Jamie Miller True NaN
В них присутствует несколько пропущенных значений.
Попробуйте сбросить пропущенные значения. Добавьте в файл опцию:
.
df_drop_missing = df.dropna()
print(df_drop_missing)
Поскольку в файле всего одна строка не содержит пропущенных значений, на экране появится довольно маленький набор данных:
first_name last_name online followers
0 Sam Smith True 987.0
Пропущенные значения можно заполнить любыми значениями, например, вставить 0. Это делается с помощью DataFrame.fillna(0).
Удалите или закомментируйте последнюю строку в файле и добавьте в него такую строку:
.
df_fill = df.fillna(0)
print(df_fill)
Снова запустите программу. На экране появится:
first_name last_name online followers
0 Sam Smith True 987.0
1 Jesse Jones 0 432.0
2 0 0 False 321.0
3 Jamie Miller True 0.0
Теперь на экране отображаются все строки, а пропущенные значения NaN заменены нулем.
Заключение
Данное руководство ознакомило вас с основами pandas в Python 3: теперь вы умеете устанавливать этот пакет, использовать структуры Series и DataFrame, сортировать и анализировать данные.
Библиотека 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.
Введение в библиотеку pandas: установка и первые шаги / pd 1
Библиотека pandas в Python — это идеальный инструмент для тех, кто занимается анализом данных, используя для этого язык программирования Python.
В этом материале речь сначала пойдет об основных аспектах библиотеки и о том, как установить ее в систему. Потом вы познакомитесь с двумя структурам данных: series и dataframes . Сможете поработать с базовым набором функций, предоставленных библиотекой pandas, для выполнения основных операций по обработке. Знакомство с ними — ключевой навык для специалиста в этой сфере. Поэтому так важно перечитать материал до тех, пока он не станет понятен на 100%.
А на примерах сможете разобраться с новыми концепциями, появившимися в библиотеке — индексацией структур данных. Научитесь правильно ее использовать для управления данными. В конце концов, разберетесь с тем, как расширить возможности индексации для работы с несколькими уровнями одновременно, используя для этого иерархическую индексацию.
Библиотека Python для анализа данных
Pandas — это библиотека Python с открытым исходным кодом для специализированного анализа данных. Сегодня все, кто использует Python для изучения статистических целей анализа и принятия решений, должны быть с ней знакомы.
Библиотека была спроектирована и разработана преимущественно Уэсом Маккини в 2008 году. В 2012 к нему присоединился коллега Чан Шэ. Вместе они создали одну из самых используемых библиотек в сообществе Python.
Pandas появилась из необходимости в простом инструменте для обработки, извлечения и управления данными.
Этот пакет Python спроектирован на основе библиотеки NumPy. Такой выбор обуславливает успех и быстрое распространение pandas. Он также пользуется всеми преимуществами NumPy и делает pandas совместимой с большинством другим модулей.
Еще одно важное решение — разработка специальных структур для анализа данных. Вместо того, чтобы использовать встроенные в Python или предоставляемые другими библиотеками структуры, были разработаны две новых.
Они спроектированы для работы с реляционными и классифицированными данными, что позволяет управлять данными способом, похожим на тот, что используется в реляционных базах SQL и таблицах Excel.
Дальше вы встретите примеры базовых операций для анализа данных, которые обычно используются на реляционных или таблицах Excel. Pandas предоставляет даже более расширенный набор функций и методов, позволяющих выполнять эти операции эффективнее.
Основная задача pandas — предоставить все строительные блоки для всех, кто погружается в мир анализа данных.
Установка pandas
Простейший способ установки библиотеки pandas — использование собранного решения, то есть установка через Anaconda или Enthought.
Установка в Anaconda
В Anaconda установка занимает пару минут. В первую очередь нужно проверить, не установлен ли уже pandas, и если да, то какая это версия. Для этого введите следующую команду в терминале:
Если модуль уже установлен (например в Windows), вы получите приблизительно следующий результат:
Если pandas не установлена, ее необходимо установить. Введите следующую команду:
Anaconda тут же проверит все зависимости и установит дополнительные модули.
Если требуется обновить пакет до более новой версии, используется эта интуитивная команда:
Система проверит версию pandas и версию всех модулей, а затем предложит соответствующие обновления. Затем предложит перейти к обновлению.
Установка из PyPI
Pandas можно установить и с помощью PyPI, используя эту команду:
Установка в Linux
Если вы работаете в дистрибутиве Linux и решили не использовать эти решения, то pandas можно установить как и любой другой пакет.
В Debian и Ubuntu используется команда:
А для OpenSuse и Fedora — эта:
Установка из источника
Если есть желание скомпилировать модуль pandas из исходного кода, тогда его можно найти на GitHub по ссылке https://github.com/pandas-dev/pandas:
Убедитесь, что Cython установлен. Больше об этом способе можно прочесть в документации: (http://pandas.pydata.org/pandas-docs/stable/install.html).
Репозиторий для Windows
Если вы работаете в Windows и предпочитаете управлять пакетами так, чтобы всегда была установлена последняя версия, то существует ресурс, где всегда можно загрузить модули для Windows: Christoph Gohlke’s Python Extension Packages for Windows (www.lfd.uci.edu/
gohlke/pythonlibs/). Каждый модуль поставляется в формате WHL для 32 и 64-битных систем. Для установки нужно использовать приложение pip:
Например, для установки pandas потребуется найти и загрузить следующий пакет:
При выборе модуля важно выбрать нужную версию Python и архитектуру. Более того, если для NumPy пакеты не требуются, то у pandas есть зависимости. Их также необходимо установить. Порядок установки не имеет значения.
Недостаток такого подхода в том, что нужно устанавливать пакеты отдельно без менеджера, который бы помог подобрать нужные версии и зависимости между разными пакетами. Плюс же в том, что появляется возможность освоиться с модулями и получить последние версии вне зависимости от того, что выберет дистрибутив.
Проверка установки pandas
Библиотека pandas может запустить проверку после установки для верификации управляющих элементов (документация утверждает, что тест покрывает 97% всего кода).
Во-первых, нужно убедиться, что установлен модуль nose . Если он имеется, то тестирование проводится с помощью следующей команды:
Оно займет несколько минут и в конце покажет список проблем.
Модуль Nose
Этот модуль спроектирован для проверки кода Python во время этапов разработки проекта или модуля Python. Он расширяет возможности модуль unittest . Nose используется для проверки кода и упрощает процесс.
Здесь о нем можно почитать подробнее: _http://pythontesting.net/framework/nose/nose-introduction/.
Первые шаги с pandas
Лучший способ начать знакомство с pandas — открыть консоль Python и вводить команды одна за одной. Таким образом вы познакомитесь со всеми функциями и структурами данных.
Более того, данные и функции, определенные здесь, будут работать и в примерах будущих материалов. Однако в конце каждого примера вы вольны экспериментировать с ними.
Для начала откройте терминал Python и импортируйте библиотеку pandas. Стандартная практика для импорта модуля pandas следующая:
Теперь, каждый раз встречая pd и np вы будете ссылаться на объект или метод, связанный с этими двумя библиотеками, хотя часто будет возникать желание импортировать модуль таким образом:
В таком случае ссылаться на функцию, объект или метод с помощью pd уже не нужно, а это считается не очень хорошей практикой в среде разработчиков Python.