Comment utiliser « OU » Opérateur dans Pandas (avec exemples)
Vous pouvez utiliser le | symbole comme opérateur « OU » chez les pandas.
Par exemple, vous pouvez utiliser la syntaxe de base suivante pour filtrer les lignes d’un DataFrame pandas qui satisfont à la condition 1 ou à la condition 2 :
df[(condition1) | (condition2)]
Les exemples suivants montrent comment utiliser cet opérateur « OU » dans différents scénarios.
Exemple 1 : utilisez l’opérateur « OR » pour filtrer les lignes en fonction de valeurs numériques dans Pandas
Supposons que nous ayons le DataFrame pandas suivant :
import pandas as pd #create DataFrame df = pd.DataFrame({'team': ['A', 'A', 'B', 'B', 'B', 'B', 'C', 'C'], 'points': [25, 12, 15, 14, 19, 23, 25, 29], 'assists': [5, 7, 7, 9, 12, 9, 9, 4], 'rebounds': [11, 8, 10, 6, 6, 5, 9, 12]}) #view DataFrame print(df) team points assists rebounds 0 A 25 5 11 1 A 12 7 8 2 B 15 7 10 3 B 14 9 6 4 B 19 12 6 5 B 23 9 5 6 C 25 9 9 7 C 29 4 12
Nous pouvons utiliser la syntaxe suivante pour filtrer les lignes du DataFrame où la valeur dans la colonne des points est supérieure à 20 ou la valeur dans la colonne des assistances est égale à 9 :
#filter rows where points > 20 or assists = 9 df[(df.points > 20) | (df.assists == 9)] team points assists rebounds 0 A 25 5 11 3 B 14 9 6 5 B 23 9 5 6 C 25 9 9 7 C 29 4 12
Les seules lignes renvoyées sont celles où la valeur des points est supérieure à 20 ou la valeur des passes décisives est égale à 9.
Exemple 2 : utilisez l’opérateur « OR » pour filtrer les lignes en fonction des valeurs de chaîne dans Pandas
Supposons que nous ayons le DataFrame pandas suivant :
import pandas as pd #create DataFrame df = pd.DataFrame({'team': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'], 'position': ['G', 'G', 'F', 'F', 'C', 'F', 'C', 'C'], 'conference': ['W', 'W', 'W', 'W', 'E', 'E', 'E', 'E'], 'points': [11, 8, 10, 6, 6, 5, 9, 12]}) #view DataFrame print(df) team position conference points 0 A G W 11 1 B G W 8 2 C F W 10 3 D F W 6 4 E C E 6 5 F F E 5 6 G C E 9 7 H C E 12
Nous pouvons utiliser la syntaxe suivante pour filtrer les lignes du DataFrame où la valeur dans la colonne position est égale à G ou la valeur dans la colonne position est égale à F ou la valeur dans la colonne équipe est égale à H :
#filter rows based on string values df[(df.team == 'H') | (df.position == 'G') | (df.position == 'F')] team position conference points 0 A G W 11 1 B G W 8 2 C F W 10 3 D F W 6 5 F F E 5 7 H C E 12
Les seules lignes renvoyées sont celles qui remplissent au moins une des trois conditions spécifiées.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans les pandas :
Comment filtrer un DataFrame Pandas par valeurs de colonne
Comment filtrer les lignes Pandas DataFrame par date
Comment filtrer un DataFrame Pandas sur plusieurs conditions