# 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).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://bemind.gitbook.io/neural/uchebniki-po-pandas-i-numpy/pandas/pandas-unique-poluchenie-unikalnykh-znachenii-v-dataframe.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
