> For the complete documentation index, see [llms.txt](https://bemind.gitbook.io/neural/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bemind.gitbook.io/neural/uchebniki-po-pandas-i-numpy/pandas/pandas-unique-poluchenie-unikalnykh-znachenii-v-dataframe.md).

# Pandas unique(): Получение уникальных значений в DataFrame

В этом учебнике **вы узнаете, как получать уникальные значения в DataFrame Pandas, включая получение уникальных значений для одного столбца и для нескольких столбцов**. Умение работать с уникальными значениями является важным навыком для данных учёных или инженеров данных любого уровня подготовки.

К концу этого урока вы научитесь следующему:

* Как использовать метод Pandas `.unique()` для получения уникальных значений в столбце Pandas DataFrame
* Как получить уникальные значения в нескольких столбцах
* Как подсчитать уникальные значения и создать таблицы частот для уникальных значений

Содержание

* [Быстрый ответ: используйте Pandas unique()](#bystryi-otvet-ispolzuite-pandas-unique)
* [Реальное применение уникальных данных](#realnoe-primenenie-unikalnykh-dannykh)
* [Понимание метода unique() Pandas](#ponimanie-metoda-unique-pandas)
* [Получите уникальные значения для столбца DataFrame Pandas](#poluchite-unikalnye-znacheniya-dlya-stolbca-dataframe-pandas)
  * [Получите уникальные значения для столбца Pandas в виде списка](#poluchite-unikalnye-znacheniya-dlya-stolbca-pandas-v-vide-spiska)
* [Получите уникальные значения для нескольких столбцов DataFrame Pandas](#poluchite-unikalnye-znacheniya-dlya-neskolkikh-stolbcov-dataframe-pandas)
* [Подсчет уникальных значений в столбце DataFrame Pandas](#podschet-unikalnykh-znachenii-v-stolbce-dataframe-pandas)
* [Подсчет появления уникальных значений в столбце DataFrame Pandas](#podschet-poyavleniya-unikalnykh-znachenii-v-stolbce-dataframe-pandas)
* [Часто задаваемые вопросы](#chasto-zadavaemye-voprosy)
* [Заключение](#zaklyuchenie)

### Быстрый ответ: используйте Pandas unique()

Вы можете использовать метод `.unique()` библиотеки Pandas, чтобы получить уникальные значения в столбце DataFrame Pandas. Значения возвращаются в порядке их появления и не сортируются.

Взгляните на блок кода ниже, чтобы узнать, как работает этот метод:

```python
# Получите уникальные значения в столбце 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, который мы создадим ниже. Мы будем использовать этот набор данных в течение всего учебного пособия.

```python
# Загрузка образца набора данных
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 позволяет вам понять:

1. Сами данные, например, какие данные включены, а какие нет.
2. Существуют ли проблемы с качеством данных. Например, мы видим, что в столбце «Статус занятости» слово «Занят» написано с двух заглавных букв. Понимание того, какие уникальные значения существуют, позволяет нам лучше понять, нужно ли нам очищать наши данные.

Давайте теперь углубимся в понимание метода Pandas `.unique()`.

### Понимание метода unique() Pandas

Метод `unique()` в Pandas на самом деле не имеет параметров. Это функция уровня Series, применяемая к столбцу DataFrame без входных параметров. При применении к конкретному столбцу DataFrame возвращает массив уникальных значений, присутствующих в этом столбце.

Вот разбивка того, как работает метод `unique()`

* Выберите столбец, к которому будет применяться функция unique(), указав имя столбца в скобках после имени DataFrame.
* Вызовите метод `unique()` без каких-либо входных параметров или аргументов.
* Получите массив уникальных значений, найденных в выбранной колонке.

Давайте рассмотрим функцию `unique()` на примере набора данных, который мы создали ранее.

### Получите уникальные значения для столбца DataFrame Pandas

Чтобы получить уникальные значения в столбце DataFrame Pandas, вы можете применить к столбцу метод `.unique()`. Метод вернет массив NumPy в том порядке, в котором появляются значения.

Давайте посмотрим, как мы можем получить уникальные значения в столбце \`Статус образования

```python
# Получите уникальные значения для столбца в Pandas
print(df['Education Status'].unique())

# Возвращает: 
# ['Graduate' 'Undergraduate' 'Postgraduate']
```

В приведенном выше примере мы использовали метод `.unique()` для столбца `df['Education Status']`. Это вернуло три уникальных значения в виде массива NumPy.

Давайте исследуем, как мы можем вернуть уникальные значения в виде списка в следующем разделе.

#### Получите уникальные значения для столбца Pandas в виде списка

По умолчанию метод `.unique()` в Pandas возвращает массив NumPy уникальных значений. Чтобы получить результат в виде списка, можно применить метод `.tolist()` к массиву, чтобы преобразовать его в список Python.

Давайте посмотрим, как это выглядит:

```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 со всеми уникальными комбинациями.

Давайте посмотрим, как это выглядит:

```python
# Получите уникальные значения для нескольких столбцов 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()` для подсчета количества уникальных значений в колонке:

```python
# Подсчет уникальных значений в столбце DataFrame Pandas
num_statuses = df['Employment Status'].nunique()
print(num_statuses)

# Возвращает: 3
```

Метод `nunique` может быть чрезвычайно полезен для понимания количества уникальных значений, существующих в столбце.

### Подсчет появления уникальных значений в столбце DataFrame Pandas

В этом разделе мы рассмотрим, как подсчитать количество вхождений значений среди уникальных значений. Это, по сути, создает таблицу частот уникальных значений в столбце DataFrame.

Давайте посмотрим, как мы можем использовать метод `.value_counts()` для подсчета встречаемости уникальных значений в столбце DataFrame библиотеки Pandas:

```python
# Подсчет появления уникальных значений в столбце DataFrame Pandas
print(df['Education Status'].value_counts())

# Возвращает:
# Graduate         6
# Postgraduate     5
# Undergraduate    4
# Name: Education Status, dtype: int64
```

При применении метода `.value_counts()` к столбцу нашего DataFrame он возвращает серию, в которой подсчитывается количество каждого уникального значения.

### Часто задаваемые вопросы

<details>

<summary><strong>Что такое метод unique() в Pandas?</strong></summary>

**Метод `unique()`** — это метод Pandas, который используется для нахождения уникальных значений в объекте Series. Его можно применить к определенному столбцу DataFrame, чтобы вернуть массив уникальных значений, присутствующих в этом столбце.

</details>

<details>

<summary>Как значения NaN обрабатываются методом unique()?</summary>

По умолчанию метод `unique()` включает значения NaN в свой выходной массив. Чтобы исключить отсутствующие значения, вы можете сначала применить метод `.dropna()` к столбцу

</details>

<details>

<summary>Как я могу отсортировать уникальные значения столбца DataFrame при использовании метода unique()?</summary>

После использования метода `unique()` для получения уникальных значений в столбце DataFrame, вы можете сортировать полученный массив, используя встроенную функцию sorted() Python. Эта функция принимает в качестве аргумента последовательность (такую как массив, возвращенный `unique()`) и возвращает отсортированный список элементов.

</details>

<details>

<summary>Как найти общее количество уникальных значений в столбце DataFrame?</summary>

Чтобы найти общее количество уникальных значений в столбце DataFrame, используйте метод `nunique()`. Его применение аналогично `unique()`, но он возвращает целочисленное количество уникальных значений, а не список уникальных значений.

</details>

### Заключение

В этом руководстве вы научились получать уникальные значения в DataFrame библиотеки Pandas, включая получение уникальных значений для одного столбца и для нескольких столбцов. Сначала вы узнали, как получить уникальные значения для одного столбца, а также для нескольких столбцов. Затем вы узнали, как подсчитать уникальные значения, а также количество вхождений уникальных значений. Чтобы узнать больше о методе `.unique()`, ознакомьтесь с [официальной документацией](https://pandas.pydata.org/docs/reference/api/pandas.unique.html).
