Pandas unique(): Получение уникальных значений в DataFrame
В этом учебнике вы узнаете, как получать уникальные значения в DataFrame Pandas, включая получение уникальных значений для одного столбца и для нескольких столбцов. Умение работать с уникальными значениями является важным навыком для данных учёных или инженеров данных любого уровня подготовки.
К концу этого урока вы научитесь следующему:
Как использовать метод Pandas
.unique()
для получения уникальных значений в столбце Pandas DataFrameКак получить уникальные значения в нескольких столбцах
Как подсчитать уникальные значения и создать таблицы частот для уникальных значений
Содержание
Быстрый ответ: используйте Pandas unique()
Вы можете использовать метод .unique()
библиотеки Pandas, чтобы получить уникальные значения в столбце DataFrame Pandas. Значения возвращаются в порядке их появления и не сортируются.
Взгляните на блок кода ниже, чтобы узнать, как работает этот метод:
# Получите уникальные значения в столбце DataFrame Pandas
import pandas as pd
df = pd.DataFrame({'Education': ['Graduate','Graduate','Undergraduate','Postgraduate']})
unique_vals = df['Education'].unique()
print(unique_vals)
# Возвращает: ['Graduate' 'Undergraduate' 'Postgraduate']
Если вы хотите узнать больше, читайте дальше! Это руководство научит вас работе с уникальными данными в DataFrame библиотеки Pandas.
Реальное применение уникальных данных
Давайте погрузимся в изучение реальных применений работы с уникальными данными и поймем, почему это важно. Рассмотрим пример DataFrame, который мы создадим ниже. Мы будем использовать этот набор данных в течение всего учебного пособия.
# Загрузка образца набора данных
import pandas as pd
dataset = {
'Education Status': ['Graduate','Graduate','Undergraduate','Postgraduate','Graduate','Undergraduate','Postgraduate','Graduate','Undergraduate','Postgraduate','Graduate','Undergraduate','Graduate','Postgraduate','Postgraduate'],
'Employment Status': ['Employed','employed','Unemployed','Employed','Employed','Unemployed','Employed','Employed','Employed','Employed','Unemployed','Employed','Employed','Employed','Employed'],
'Gender': ['F','M','M','F','M','F','M','F','M','F','M','F','M','F','F']}
df = pd.DataFrame(dataset)
print(df.head())
# Возвращает:
# Education Status Employment Status Gender
# 0 Graduate Employed F
# 1 Graduate employed M
# 2 Undergraduate Unemployed M
# 3 Postgraduate Employed F
# 4 Graduate Employed M
Понимание уникальных данных в DataFrame позволяет вам понять:
Сами данные, например, какие данные включены, а какие нет.
Существуют ли проблемы с качеством данных. Например, мы видим, что в столбце «Статус занятости» слово «Занят» написано с двух заглавных букв. Понимание того, какие уникальные значения существуют, позволяет нам лучше понять, нужно ли нам очищать наши данные.
Давайте теперь углубимся в понимание метода Pandas .unique()
.
Понимание метода unique() Pandas
Метод unique()
в Pandas на самом деле не имеет параметров. Это функция уровня Series, применяемая к столбцу DataFrame без входных параметров. При применении к конкретному столбцу DataFrame возвращает массив уникальных значений, присутствующих в этом столбце.
Вот разбивка того, как работает метод unique()
Выберите столбец, к которому будет применяться функция unique(), указав имя столбца в скобках после имени DataFrame.
Вызовите метод
unique()
без каких-либо входных параметров или аргументов.Получите массив уникальных значений, найденных в выбранной колонке.
Давайте рассмотрим функцию unique()
на примере набора данных, который мы создали ранее.
Получите уникальные значения для столбца DataFrame Pandas
Чтобы получить уникальные значения в столбце DataFrame Pandas, вы можете применить к столбцу метод .unique()
. Метод вернет массив NumPy в том порядке, в котором появляются значения.
Давайте посмотрим, как мы можем получить уникальные значения в столбце `Статус образования
# Получите уникальные значения для столбца в Pandas
print(df['Education Status'].unique())
# Возвращает:
# ['Graduate' 'Undergraduate' 'Postgraduate']
В приведенном выше примере мы использовали метод .unique()
для столбца df['Education Status']
. Это вернуло три уникальных значения в виде массива NumPy.
Давайте исследуем, как мы можем вернуть уникальные значения в виде списка в следующем разделе.
Получите уникальные значения для столбца Pandas в виде списка
По умолчанию метод .unique()
в Pandas возвращает массив NumPy уникальных значений. Чтобы получить результат в виде списка, можно применить метод .tolist()
к массиву, чтобы преобразовать его в список Python.
Давайте посмотрим, как это выглядит:
# Получите уникальные значения для столбца в Pandas в виде списка
print(df['Education Status'].unique().tolist())
# Возвращает:
# ['Graduate' 'Undergraduate' 'Postgraduate']
В приведенном выше примере мы применили метод .tolist()
к нашему массиву NumPy, преобразовав его в список.
Давайте теперь посмотрим, как мы можем получить уникальные значения для нескольких столбцов DataFrame Pandas.
Получите уникальные значения для нескольких столбцов DataFrame Pandas
По умолчанию метод .unique()
в Pandas может быть применен только к одному столбцу. Это связано с тем, что метод относится к Pandas Series, а не к DataFrame.
Чтобы получить уникальные значения нескольких столбцов DataFrame, мы можем использовать метод .drop_duplicates()
. Это вернет DataFrame со всеми уникальными комбинациями.
Давайте посмотрим, как это выглядит:
# Получите уникальные значения для нескольких столбцов DataFrame
unique = df[['Education Status', 'Gender']].drop_duplicates()
print(unique)
# Возвращает:
# Education Status Gender
# 0 Graduate Female
# 1 Graduate Male
# 2 Undergraduate Male
# 3 Postgraduate Female
# 5 Undergraduate Female
# 6 Postgraduate Male
Метод .drop_duplicates()
в Pandas может быть полезен для определения только уникальных значений по двум или более столбцам
Подсчет уникальных значений в столбце DataFrame Pandas
Чтобы посчитать, сколько уникальных значений содержится в определенной колонке (или колонках) DataFrame, мы можем применить метод .nunique()
. Метод вернет одно значение, если применен к одной колонке, и серию Pandas, если применен к нескольким колонкам.
Давайте посмотрим, как мы можем использовать метод .nunique()
для подсчета количества уникальных значений в колонке:
# Подсчет уникальных значений в столбце DataFrame Pandas
num_statuses = df['Employment Status'].nunique()
print(num_statuses)
# Возвращает: 3
Метод nunique
может быть чрезвычайно полезен для понимания количества уникальных значений, существующих в столбце.
Подсчет появления уникальных значений в столбце DataFrame Pandas
В этом разделе мы рассмотрим, как подсчитать количество вхождений значений среди уникальных значений. Это, по сути, создает таблицу частот уникальных значений в столбце DataFrame.
Давайте посмотрим, как мы можем использовать метод .value_counts()
для подсчета встречаемости уникальных значений в столбце DataFrame библиотеки Pandas:
# Подсчет появления уникальных значений в столбце DataFrame Pandas
print(df['Education Status'].value_counts())
# Возвращает:
# Graduate 6
# Postgraduate 5
# Undergraduate 4
# Name: Education Status, dtype: int64
При применении метода .value_counts()
к столбцу нашего DataFrame он возвращает серию, в которой подсчитывается количество каждого уникального значения.
Часто задаваемые вопросы
Заключение
В этом руководстве вы научились получать уникальные значения в DataFrame библиотеки Pandas, включая получение уникальных значений для одного столбца и для нескольких столбцов. Сначала вы узнали, как получить уникальные значения для одного столбца, а также для нескольких столбцов. Затем вы узнали, как подсчитать уникальные значения, а также количество вхождений уникальных значений. Чтобы узнать больше о методе .unique()
, ознакомьтесь с официальной документацией.
Last updated