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

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *