Como encontrar valores únicos em múltiplas colunas no pandas
Freqüentemente, você pode querer encontrar todos os valores exclusivos em várias colunas em um DataFrame do pandas. Felizmente, isso é fácil de fazer usando a função pandas unique() combinada com a função ravel() :
- unique() : retorna valores únicos em ordem de aparecimento.
- ravel(): retorna uma série de dados nivelados.
Por exemplo, suponha que temos o seguinte DataFrame do 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
Retorna uma matriz de valores únicos
O código a seguir mostra como encontrar valores exclusivos em col1 e col2 :
p.d. unique (df[[' col1 ', ' col2 ']]. values . ravel ()) array(['a', 'b', 'c', 'e', 'd', 'f', 'g'], dtype=object)
Pelo resultado, podemos ver que existem 7 valores únicos nessas duas colunas: a, b, c, d, e, f, g .
Retornar DataFrame de valores únicos
Se quiser retornar esses valores como um DataFrame em vez de um array, você pode usar o seguinte código:
unique = pd. unique (df[[' col1 ', ' col2 ']]. values . ravel ()) p.d. DataFrame (unique) 0 0 a 1b 2 tbsp 3rd 4 d 5f 6g
Retorna o número de valores únicos
Se quiser apenas saber o número de valores exclusivos em várias colunas, você pode usar o seguinte código:
unique = pd. unique (df[[' col1 ', ' col2 ']]. values . ravel ()) len (unique) 7
Isso nos diz que existem 7 valores exclusivos nessas duas colunas.
Recursos adicionais
Como mesclar Pandas DataFrames em várias colunas
Como filtrar um DataFrame do Pandas em múltiplas condições