Comment trouver des valeurs uniques dans plusieurs colonnes dans Pandas
Souvent, vous souhaiterez peut-être trouver toutes les valeurs uniques sur plusieurs colonnes dans un DataFrame pandas. Heureusement, cela est facile à faire en utilisant la fonction pandas unique() combinée avec la fonction ravel() :
- unique() : renvoie les valeurs uniques par ordre d’apparition.
- ravel() : renvoie une série de données aplaties.
Par exemple, supposons que nous ayons le DataFrame pandas suivant :
import pandas as pd #create DataFrame 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 a a 11 1 b c 8 2 c e 10 3 d f 6 4 e g 6
Renvoie un tableau de valeurs uniques
Le code suivant montre comment trouver les valeurs uniques dans col1 et col2 :
pd.unique(df[['col1', 'col2']].values.ravel()) array(['a', 'b', 'c', 'e', 'd', 'f', 'g'], dtype=object)
À partir du résultat, nous pouvons voir qu’il existe 7 valeurs uniques dans ces deux colonnes : a, b, c, d, e, f, g .
Renvoyer le DataFrame de valeurs uniques
Si vous souhaitez renvoyer ces valeurs sous forme de DataFrame au lieu d’un tableau, vous pouvez utiliser le code suivant :
uniques = pd.unique(df[['col1', 'col2']].values.ravel()) pd.DataFrame(uniques) 0 0 a 1 b 2 c 3 e 4 d 5 f 6 g
Renvoie le nombre de valeurs uniques
Si vous souhaitez simplement connaître le nombre de valeurs uniques sur plusieurs colonnes, vous pouvez utiliser le code suivant :
uniques = pd.unique(df[['col1', 'col2']].values.ravel()) len(uniques) 7
Cela nous indique qu’il existe 7 valeurs uniques dans ces deux colonnes.
Ressources additionnelles
Comment fusionner des DataFrames Pandas sur plusieurs colonnes
Comment filtrer un DataFrame Pandas sur plusieurs conditions