Pandas est une puissante bibliothèque Python pour la manipulation et l’analyse de données. Une tâche courante consiste à extraire les valeurs uniques d’une colonne de DataFrame puis à les trier. Cet article explore deux méthodes efficaces pour y parvenir.
Table des matières
- Extraction des valeurs uniques avec la méthode
unique()
- Extraction des valeurs uniques avec la méthode
drop_duplicates()
- Tri des valeurs uniques
Extraction des valeurs uniques avec la méthode unique()
La méthode unique()
fournit un moyen concis d’obtenir les valeurs uniques d’une série Pandas (une seule colonne). Elle renvoie un tableau NumPy contenant uniquement les éléments uniques, en conservant leur ordre d’origine.
import pandas as pd
data = {'col1': ['A', 'B', 'A', 'C', 'B', 'D'],
'col2': [1, 2, 1, 3, 2, 4]}
df = pd.DataFrame(data)
unique_values = df['col1'].unique()
print(unique_values) # Output: ['A' 'B' 'C' 'D']
Ce code crée un DataFrame d’exemple, puis utilise unique()
sur la colonne ‘col1’. La sortie est un tableau NumPy affichant les valeurs uniques dans leur ordre de première apparition.
Extraction des valeurs uniques avec la méthode drop_duplicates()
La méthode drop_duplicates()
offre plus de flexibilité, en particulier lorsqu’on traite plusieurs colonnes. Bien qu’elle soit principalement utilisée pour supprimer les lignes dupliquées, elle peut extraire efficacement les valeurs uniques d’une seule colonne.
import pandas as pd
data = {'col1': ['A', 'B', 'A', 'C', 'B', 'D'],
'col2': [1, 2, 1, 3, 2, 4]}
df = pd.DataFrame(data)
unique_values = df['col1'].drop_duplicates().values
print(unique_values) # Output: ['A' 'B' 'C' 'D']
Cet exemple applique directement drop_duplicates()
à la série ‘col1’. L’attribut .values
convertit le résultat en un tableau NumPy. L’ordre des valeurs uniques reflète leur première occurrence dans le DataFrame.
Tri des valeurs uniques
Les deux méthodes ci-dessus renvoient des valeurs uniques, mais pas nécessairement dans l’ordre trié. Pour trier, utilisez la fonction sort()
de NumPy ou la méthode sort_values()
de Pandas.
import pandas as pd
import numpy as np
data = {'col1': ['A', 'B', 'A', 'C', 'B', 'D'],
'col2': [1, 2, 1, 3, 2, 4]}
df = pd.DataFrame(data)
# Utilisation de unique() et sort()
unique_values = np.sort(df['col1'].unique())
print(unique_values) # Output: ['A' 'B' 'C' 'D']
# Utilisation de drop_duplicates() et sort_values()
unique_values = df['col1'].drop_duplicates().sort_values().values
print(unique_values) # Output: ['A' 'B' 'C' 'D']
Ceci présente le tri utilisant les deux approches. np.sort()
fonctionne sur le tableau NumPy de unique()
, tandis que sort_values()
est utilisé sur la série Pandas de drop_duplicates()
. Les deux produisent un tableau trié. Pour un ordre décroissant avec sort_values()
, utilisez ascending=False
.
En résumé, unique()
et drop_duplicates()
extraient efficacement les valeurs uniques. Le choix optimal dépend de vos besoins spécifiques et du fait que vous travaillez avec une ou plusieurs colonnes. N’oubliez pas de trier les résultats en utilisant la méthode appropriée pour l’ordre souhaité.