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


Часто вам может потребоваться найти все уникальные значения в нескольких столбцах в DataFrame pandas. К счастью, это легко сделать, используя функцию pandas unique() в сочетании с функцией ravel() :

  • unique() : возвращает уникальные значения в порядке появления.
  • ravel(): возвращает серию сглаженных данных.

Например, предположим, что у нас есть следующий DataFrame pandas:

 import pandas as pd

#createDataFrame
df = pd.DataFrame({'col1': ['a', 'b', 'c', 'd', 'e'],
                   'col2': ['a', 'c', 'e', 'f', 'g'],
                   'col3': [11, 8, 10, 6, 6]})

#view DataFrame 
print(df)

  col1 col2 col3
0 aa 11
1 bc 8
2 this 10
3 df 6
4 eg 6

Возвращает массив уникальных значений

Следующий код показывает, как найти уникальные значения в col1 и col2 :

 p.d. unique (df[[' col1 ', ' col2 ']]. values . ravel ())

array(['a', 'b', 'c', 'e', 'd', 'f', 'g'], dtype=object)

Из результата мы видим, что в этих двух столбцах есть 7 уникальных значений: a, b, c, d, e, f, g .

Возврат DataFrame уникальных значений

Если вы хотите вернуть эти значения в виде DataFrame вместо массива, вы можете использовать следующий код:

 unique = pd. unique (df[[' col1 ', ' col2 ']]. values . ravel ())

p.d. DataFrame (unique)

	0
0 a
1b
2 tbsp
3rd
4 d
5f
6g

Возвращает количество уникальных значений

Если вы просто хотите узнать количество уникальных значений в нескольких столбцах, вы можете использовать следующий код:

 unique = pd. unique (df[[' col1 ', ' col2 ']]. values . ravel ())

len (unique)
7

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

Дополнительные ресурсы

Как объединить фреймы данных Pandas по нескольким столбцам
Как фильтровать DataFrame Pandas по нескольким условиям

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *