Как найти уникальные значения в нескольких столбцах в 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 по нескольким условиям