Як знайти унікальні значення в кількох стовпцях у pandas
Часто вам може знадобитися знайти всі унікальні значення в кількох стовпцях у pandas DataFrame. На щастя, це легко зробити за допомогою функції pandas unique() у поєднанні з функцією ravel() :
- unique() : повертає унікальні значення в порядку появи.
- ravel(): повертає ряд зведених даних.
Наприклад, припустімо, що у нас є наступні pandas DataFrame:
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 DataFrames у кількох стовпцях
Як відфільтрувати Pandas DataFrame за кількома умовами