Come trovare valori univoci in più colonne in pandas


Spesso potresti voler trovare tutti i valori univoci su più colonne in un DataFrame panda. Fortunatamente, questo è facile da fare utilizzando la funzione pandas unique() combinata con la funzione ravel() :

  • unique() : restituisce valori univoci in ordine di apparizione.
  • ravel(): restituisce una serie di dati appiattiti.

Ad esempio, supponiamo di avere i seguenti panda 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

Restituisce una matrice di valori univoci

Il codice seguente mostra come trovare valori univoci in col1 e col2 :

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

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

Dal risultato, possiamo vedere che ci sono 7 valori univoci in queste due colonne: a, b, c, d, e, f, g .

Restituisce DataFrame di valori univoci

Se vuoi restituire questi valori come DataFrame anziché come array, puoi utilizzare il seguente codice:

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

p.d. DataFrame (unique)

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

Restituisce il numero di valori univoci

Se vuoi solo conoscere il numero di valori univoci su più colonne, puoi utilizzare il seguente codice:

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

len (unique)
7

Questo ci dice che ci sono 7 valori univoci in queste due colonne.

Risorse addizionali

Come unire Pandas DataFrames su più colonne
Come filtrare un Pandas DataFrame su più condizioni

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *