Pandas : comment sélectionner des lignes entre deux valeurs



Vous pouvez utiliser la syntaxe de base suivante pour sélectionner des lignes dans un DataFrame pandas où une colonne se trouve entre deux valeurs spécifiques :

df_filtered = df[df['points'].between(25, 35)]

Cet exemple particulier sélectionne toutes les lignes dont la valeur dans la colonne de points est comprise entre 25 et 35.

Si vous souhaitez plutôt sélectionner des lignes dont la valeur dans la colonne de points n’est pas comprise entre 25 et 35, vous pouvez ajouter un tilde ( ~ ) avant le nom de la colonne :

df_filtered = df[~df['points'].between(25, 35)]

Les exemples suivants montrent comment utiliser chaque méthode dans la pratique.

Exemple : sélectionner des lignes entre deux valeurs dans Pandas

Supposons que nous ayons le DataFrame pandas suivant qui contient des informations sur les points marqués par les joueurs de basket-ball de différentes équipes :

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['Mavs', 'Mavs', 'Nets', 'Nets', 'Heat', 'Heat', 'Kings'],
                   'points': [22, 28, 35, 34, 29, 28, 23]})

#view DataFrame
print(df)

    team  points
0   Mavs      22
1   Mavs      28
2   Nets      35
3   Nets      34
4   Heat      29
5   Heat      28
6  Kings      23

Nous pouvons utiliser la syntaxe suivante pour sélectionner uniquement les lignes du DataFrame où la valeur dans la colonne des points est comprise entre 25 et 35 :

#select rows where value in points column is between 25 and 35
df_filtered = df[df['points'].between(25, 35)]

#view filtered DataFrame
print(df_filtered)

   team  points
1  Mavs      28
2  Nets      35
3  Nets      34
4  Heat      29
5  Heat      28

Notez que seules les lignes dont la valeur dans la colonne des points est comprise entre 25 et 35 ont été sélectionnées.

Notez que la fonction between() inclut les valeurs dans les limites inférieure et supérieure.

Par exemple, le joueur avec une valeur de points de 35 a été inclus dans le DataFrame filtré.

Si vous souhaitez plutôt sélectionner uniquement les lignes dont la valeur dans la colonne des points n’est pas comprise entre 25 et 35, nous pouvons ajouter un tilde ( ~ ) avant le nom de la colonne :

#select rows where value in points column is not between 25 and 35
df_filtered = df[~df['points'].between(25, 35)]

#view filtered DataFrame
print(df_filtered)

    team  points
0   Mavs      22
6  Kings      23

Notez que seules les lignes dont la valeur dans la colonne des points n’est pas comprise entre 25 et 35 ont été sélectionnées.

Remarque : Vous pouvez trouver la documentation complète de la fonction pandas between() ici .

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans les pandas :

Pandas : sélectionnez les lignes où deux colonnes sont égales
Pandas : sélectionnez des lignes de DataFrame à l’aide d’une série booléenne
Pandas : sélectionnez des lignes avec des valeurs NaN

Ajouter un commentaire

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