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