La sélection et l’indexation des données sont des opérations fondamentales dans Pandas, qui te permettent d’extraire des sous-ensembles spécifiques de données d’un DataFrame.
Sélection de colonnes et de lignes #
Tu peux sélectionner des colonnes et des lignes spécifiques dans un DataFrame à l’aide des méthodes d’indexation entre crochets []
, .loc[]
et .iloc[]
:
- Utilisation des crochets
[]
: Pour sélectionner une ou plusieurs colonnes en fonction de leur nom, tu peux utiliser des crochets avec le nom des colonnes sous forme de liste.
selected_columns = df[['Column1', 'Column2']]
- Utilisation de
.loc[]
pour la sélection par étiquette : L’indexeur.loc[]
te permet de sélectionner des lignes et des colonnes par étiquette. Tu peux spécifier des étiquettes de ligne et de colonne.
selected_data = df.loc[3:6, ['Column1', 'Column2']]
Remarque : si tu spécifies plusieurs lignes ou colonnes à l’aide du découpage (slicing) d’index, les index intérieur et extérieur sont tous deux inclusifs. Ainsi, 3,4,5,6 toutes les lignes sont incluses.
- Utilisation de
.iloc[]
pour la sélection basée sur les nombres entiers : L’indexeur.iloc[]
te permet de sélectionner des lignes et des colonnes en fonction d’un nombre entier, ce qui est utile pour l’indexation numérique.
selected_data = df.iloc[1:4, 0:2]
Remarque : si tu spécifies plusieurs lignes ou colonnes à l’aide du découpage d’index, seul l’intérieur est inclusif et l’extérieur est exclusif. Par conséquent, seules les lignes 1,2,3 seront affichées et les colonnes 0,1 seront affichées.
Filtrage / Sélection conditionnelle #
La sélection conditionnelle te permet de filtrer les lignes en fonction de critères spécifiques. Pour ce faire, tu peux utiliser l’indexation des booléens. Lorsque tu passes une liste de booléens ( longueur = longueur des échantillons/rangs ) à un DataFrame, ce dernier sélectionne les lignes spécifiques où l’index de la liste de booléens est vrai (True).
- Indexation booléenne : Crée un masque booléen en appliquant une condition à une colonne, puis utilise ce masque pour filtrer les lignes en fonction de la condition vraie (True).
# La première condition renvoie une liste de booléens # où il est True lorsque la condition est remplie. boolean_mask = df['Age'] > 30 filtered_data = df[boolean_mask]
- Conditions multiples : Combine plusieurs conditions à l’aide d’opérateurs logiques (
&
pour AND,|
pour OR) et utilise des parenthèses pour plus de clarté. Ou tu peux également utiliser.isin()
une méthode de pandas lorsque tu veux vérifier si une valeur d’une liste de choses.
boolean_mask = (df['Age'] > 25) & (df['Salary'] > 50000) filtered_data = df[boolean_mask] boolean_mask = (df['Age'] > 60) | (df['Age'] > 18) filtered_data = df[boolean_mask] drama_action_movies = movies.genre.isin(['drama','action'])
Méthodes d’indexation #
Pandas propose plusieurs méthodes pour personnaliser et réinitialiser l’index du DataFrame :
set_index()
: Cette méthode permet de définir une ou plusieurs colonnes comme index du DataFrame. Elle est utile lorsque tu souhaites effectuer des opérations sur une colonne spécifique. Pour l’enregistrer, nous devons modifier le DataFrame existant avec celui qui a été mis à jour. Ou si tu veux directement l’enregistrer, tu peux utiliser le paramètreinplace=True
.
# Les deux sauvegardent les données après modification df = df.set_index('ID') df.set_index('ID',inplace=True)
reset_index()
: La méthodereset_index()
réinitialise l’index à l’index entier par défaut et supprime éventuellement l’index existant.
df = df.reset_index(drop=True)