Data Analysis

Maîtriser le tri des DataFrames Pandas : Guide complet

Spread the love

Les DataFrames Pandas offrent des outils puissants pour la manipulation de données, et le tri est une opération fondamentale. Cet article explore comment trier efficacement un DataFrame par une seule colonne, en se concentrant sur la méthode cruciale sort_values() et ses arguments clés : ascending et na_position.

Table des matières

Contrôler l’ordre de tri avec ascending

La méthode sort_values() offre un contrôle simple sur le sens du tri. L’argument ascending, qui vaut par défaut True (ordre croissant), détermine s’il faut trier par ordre croissant ou décroissant.


import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
        'Age': [25, 30, 22, 28],
        'Score': [85, 92, 78, 88]}

df = pd.DataFrame(data)

# Tri croissant par 'Age'
df_ascending = df.sort_values(by='Age')
print("Croissant :n", df_ascending)

# Tri décroissant par 'Age'
df_descending = df.sort_values(by='Age', ascending=False)
print("nDécroissant :n", df_descending)

Gérer les valeurs manquantes avec na_position

Lorsqu’on traite des jeux de données contenant des valeurs manquantes (NaN), l’argument na_position contrôle le placement de ces valeurs dans la colonne triée. Il accepte deux valeurs :

  • 'first' (par défaut) : Place les valeurs NaN au début de la colonne triée.
  • 'last' : Place les valeurs NaN à la fin de la colonne triée.

import pandas as pd
import numpy as np

data = {'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
        'Age': [25, 30, np.nan, 28, 22],
        'Score': [85, 92, 78, 88, 95]}

df = pd.DataFrame(data)

# Valeurs NaN en premier
df_na_first = df.sort_values(by='Age', na_position='first')
print("NaN en premier :n", df_na_first)

# Valeurs NaN en dernier
df_na_last = df.sort_values(by='Age', na_position='last')
print("nNaN en dernier :n", df_na_last)

Trier par plusieurs colonnes

Vous pouvez facilement étendre cela pour trier par plusieurs colonnes en passant une liste à l’argument by. Pandas triera par la première colonne de la liste, puis par la seconde, et ainsi de suite.


# Tri par Âge (croissant) puis par Score (décroissant)
df_multi = df.sort_values(by=['Age', 'Score'], ascending=[True, False])
print("nTri multi-colonnes :n", df_multi)

Tri sur place

Par défaut, sort_values() renvoie un nouveau DataFrame trié. Pour modifier le DataFrame directement, définissez l’argument inplace sur True. Notez que cela modifie le DataFrame original, soyez donc prudent.


df.sort_values(by='Age', inplace=True)
print("nTri sur place :n", df)

En comprenant et en utilisant ces arguments, vous pouvez trier efficacement et précisément vos DataFrames Pandas, rationalisant ainsi votre flux de travail d’analyse de données.

Laisser un commentaire

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