Получение уникальных значений столбца в pandas — подробное объяснение и практические примеры

Библиотека pandas является одной из самых популярных в мире для работы с данными в Python. Она предоставляет функциональность для анализа, манипуляции и визуализации данных. Одной из задач, часто встречающейся при работе с данными, является получение уникальных значений из столбца. Это может быть полезно, например, при анализе категориальных переменных или поиске дубликатов.

Пандас предоставляет несколько способов получить уникальные значения из столбца. В данной статье мы рассмотрим наиболее распространенные методы, такие как unique() и value_counts().

Метод unique() возвращает массив с уникальными значениями из столбца. Например, если у нас есть столбец 'Цвет' с значениями ['Красный', 'Синий', 'Зеленый', 'Красный', 'Желтый'], то метод unique() вернет ['Красный', 'Синий', 'Зеленый', 'Желтый']. Таким образом, мы получаем список всех уникальных цветов.

Метод value_counts() возвращает серию, содержащую уникальные значения из столбца и их частоту появления. Например, если у нас есть столбец 'Цвет' с значениями ['Красный', 'Синий', 'Зеленый', 'Красный', 'Желтый'], то метод value_counts() вернет серию с индексами ['Красный', 'Синий', 'Зеленый', 'Желтый'] и значениями [2, 1, 1, 1]. Таким образом, мы получаем информацию о том, сколько раз каждый цвет встречается в столбце.

Методы для получения уникальных значений столбца в pandas

Методы для получения уникальных значений столбца в pandas

Библиотека pandas предоставляет несколько методов для получения уникальных значений столбца. Рассмотрим наиболее распространенные из них:

  1. unique(): этот метод возвращает все уникальные значения в столбце в виде массива NumPy.
  2. nunique(): данный метод возвращает количество уникальных значений в столбце.
  3. value_counts(): данный метод возвращает количество уникальных значений и их частоту встречаемости в столбце.

Примеры использования этих методов:


import pandas as pd
# Создание DataFrame
data = {'Страна': ['Россия', 'США', 'Китай', 'Индия', 'США', 'Китай']}
df = pd.DataFrame(data)
# Получение всех уникальных значений
unique_values = df['Страна'].unique()
print("Уникальные значения:", unique_values)
# Получение количества уникальных значений
count_unique_values = df['Страна'].nunique()
print("Количество уникальных значений:", count_unique_values)
# Получение частоты встречаемости уникальных значений
value_counts = df['Страна'].value_counts()
print("Частота встречаемости значений:")
print(value_counts)

Результат выполнения кода:


Уникальные значения: ['Россия' 'США' 'Китай' 'Индия']
Количество уникальных значений: 4
Частота встречаемости значений:
США       2
Китай     2
Индия     1
Россия    1
Name: Страна, dtype: int64

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

Ручное удаление дубликатов

Ручное удаление дубликатов

В pandas существует возможность ручного удаления дубликатов в столбце. Для этого можно воспользоваться методом drop_duplicates. Данный метод позволяет удалить повторяющиеся значения в столбце и оставить только уникальные.

Пример использования метода drop_duplicates для удаления дубликатов в столбце col:

df.drop_duplicates(subset='col', inplace=True)

Где df – это DataFrame, col – имя столбца.

Метод drop_duplicates имеет несколько параметров, которые дополнительно позволяют настроить процесс удаления дубликатов:

ПараметрОписание
subsetУказывает столбцы, в которых нужно искать дубликаты. По умолчанию проверка проводится по всем столбцам DataFrame.
keepУказывает, какой из дубликатов оставить. Возможные значения: first (оставить первый), last (оставить последний), False (удалить все дубликаты). По умолчанию оставляется первый найденный дубликат.
inplaceУказывает, нужно ли изменять исходный DataFrame или возвращать новый DataFrame без дубликатов. По умолчанию изменяется исходный DataFrame.

После выполнения метода drop_duplicates из исходного DataFrame будут удалены все строки, содержащие дубликаты в указанном столбце.

Метод unique

Метод unique

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

Пример использования метода unique():

import pandas as pd
data = {'Страна': ['Россия', 'США', 'Китай', 'Индия', 'Россия', 'Россия', 'Китай']}
df = pd.DataFrame(data)
unique_countries = df['Страна'].unique()
print(unique_countries)

Результат выполнения кода:

['Россия' 'США' 'Китай' 'Индия']

Как видно из примера, метод unique() позволяет получить список уникальных стран из столбца 'Страна' датафрейма df. Значения в списке отсортированы в порядке их появления в исходном столбце.

Метод value_counts

Метод value_counts

Пример использования метода value_counts:

import pandas as pd
data = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
'B': ['one', 'one', 'two', 'two', 'two', 'three', 'three', 'one']})
print(data['A'].value_counts())

Результат выполнения кода:

foo 5
bar 3
Name: A, dtype: int64

Метод value_counts также может быть полезен при анализе данных, например, в задачах классификации. Он помогает понять, как распределены значения в столбце и определить, есть ли в данных несбалансированность.

Если необходимо отсортировать результат по частоте встречаемости, можно использовать аргумент sort=True:

print(data['A'].value_counts(sort=True))

Результат выполнения кода:

foo 5
bar 3
Name: A, dtype: int64

Также метод value_counts имеет другие параметры, такие как normalize (возвращает относительные частоты), dropna (исключает пропущенные значения), bins (группирует значения) и другие.

Оцените статью