Gérer les valeurs manquantes lors du tri (sort_values(by='colonne', na_position='first'/'last'))
Lors du tri des données avec sort_values(), il est possible de spécifier comment gérer les valeurs manquantes (NaN) dans la colonne utilisée pour le tri. Le paramètre na_position permet de définir si les valeurs manquantes doivent être placées en début (‘first’) ou en fin (‘last’) du DataFrame après le tri.
Fonctions :
-
sort_values(by='colonne', na_position='first'/'last')
La méthode sort_values(by='colonne', na_position='first'/'last') permet de gérer l'ordre des valeurs manquantes (NaN) lors du tri des données dans un DataFrame. Par défaut, les valeurs manquantes sont placées à la fin du tri. Cependant, vous pouvez choisir de les placer au début en utilisant l'option na_position='first'. Cela peut être utile lorsque vous souhaitez donner priorité aux valeurs manquantes ou les analyser séparément.
Importation :
import pandas as pd
Attributs :
Paramètre Description by
Nom de la colonne sur laquelle effectuer le tri. ascending
Booléen ou liste de booléens pour déterminer si le tri est croissant ( True
) ou décroissant (False
). Par défaut,True
.na_position
Détermine la position des valeurs manquantes : 'first'
pour placer les NaN en premier et'last'
pour les placer à la fin. Par défaut,'last'
.inplace
Booléen permettant de modifier le DataFrame en place (si True
, les changements sont effectués directement sans créer un nouveau DataFrame).Exemple de code :
import pandas as pd # Exemple de DataFrame avec des valeurs manquantes data = { 'nom': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'], 'âge': [24, 30, None, 30, 24], 'score': [88, 92, 75, None, 95] } df = pd.DataFrame(data) # Trier les valeurs par 'âge' (croissant), en plaçant les NaN en premier df_trie_nan_first = df.sort_values(by='âge', ascending=True, na_position='first') print("DataFrame trié par âge (NaN en premier) :") print(df_trie_nan_first) # Trier les valeurs par 'score' (décroissant), en plaçant les NaN à la fin df_trie_nan_last = df.sort_values(by='score', ascending=False, na_position='last') print("\nDataFrame trié par score (NaN à la fin) :") print(df_trie_nan_last) # Trier en place par 'âge', en plaçant les NaN en premier df.sort_values(by='âge', ascending=True, na_position='first', inplace=True) print("\nDataFrame trié par âge en place (NaN en premier) :") print(df)
Explication du code :
- DataFrame : Un DataFrame est créé avec des valeurs manquantes (NaN) dans les colonnes
âge
etscore
. - Gestion des NaN avec
na_position
:- Dans le premier exemple,
df.sort_values(by='âge', ascending=True, na_position='first')
trie les lignes par la colonneâge
en ordre croissant, et les valeurs manquantes (NaN) sont placées en première position grâce àna_position='first'
. - Dans le deuxième exemple,
df.sort_values(by='score', ascending=False, na_position='last')
trie les lignes par la colonnescore
en ordre décroissant, avec les valeurs manquantes placées à la fin, ce qui est l'option par défaut. - Enfin, l'exemple avec
inplace=True
modifie directement le DataFrame original et place les NaN en premier dans l'ordre croissant parâge
.
- Dans le premier exemple,
Remarque :
- Gestion des NaN : L'option
na_position='first'
est particulièrement utile lorsque vous souhaitez analyser ou traiter les lignes contenant des valeurs manquantes avant celles qui contiennent des valeurs valides. - Inplace : L'argument
inplace=True
permet de modifier le DataFrame en place sans avoir à créer un DataFrame séparé.
- DataFrame : Un DataFrame est créé avec des valeurs manquantes (NaN) dans les colonnes