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

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *