Pandas : Vérifiez si la chaîne contient plusieurs sous-chaînes



Vous pouvez utiliser les méthodes suivantes pour vérifier si une chaîne dans un DataFrame pandas contient plusieurs sous-chaînes :

Méthode 1 : vérifier si la chaîne contient une sous-chaîne parmi plusieurs

df['string_column'].str.contains('|'.join(['string1', 'string2']))

Méthode 2 : vérifier si la chaîne contient plusieurs sous-chaînes

df['string_column'].str.contains(r'^(?=.*string1)(?=.*string2)')

Les exemples suivants montrent comment utiliser chaque méthode en pratique avec le DataFrame pandas suivant :

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team' : ['Good East Team', 'Good West Team', 'Great East Team',
                             'Great West Team', 'Bad East Team', 'Bad West Team'],
                   'points' : [93, 99, 105, 110, 85, 88]})

#view DataFrame
print(df)

              team  points
0   Good East Team      93
1   Good West Team      99
2  Great East Team     105
3  Great West Team     110
4    Bad East Team      85
5    Bad West Team      88

Exemple 1 : Vérifier si la chaîne contient une sous-chaîne parmi plusieurs

Nous pouvons utiliser la syntaxe suivante pour vérifier si chaque chaîne de la colonne équipe contient soit la sous-chaîne « Bon » ou « Est » :

#create new column that checks if each team name contains 'Good' or 'East'
df['good_or_east'] = df['team'].str.contains('|'.join(['Good', 'East']))

#view updated DataFrame
print(df)

              team  points  good_or_east
0   Good East Team      93          True
1   Good West Team      99          True
2  Great East Team     105          True
3  Great West Team     110         False
4    Bad East Team      85          True
5    Bad West Team      88         False

La nouvelle colonne good_or_east renvoie les valeurs suivantes :

  • Vrai si l’équipe contient « Bon » ou « Est »
  • Faux si l’équipe ne contient ni « Bon » ni « Est »

Remarque : Le | L’opérateur signifie « ou » en pandas.

Exemple 2 : Vérifier si la chaîne contient plusieurs sous-chaînes

Nous pouvons utiliser la syntaxe suivante pour vérifier si chaque chaîne de la colonne équipe contient la sous-chaîne « Bon » et « Est » :

#create new column that checks if each team name contains 'Good' and 'East'
df['good_and_east'] = df['team'].str.contains(r'^(?=.*Good)(?=.*East)')

#view updated DataFrame
print(df)

              team  points  good_and_east
0   Good East Team      93           True
1   Good West Team      99          False
2  Great East Team     105          False
3  Great West Team     110          False
4    Bad East Team      85          False
5    Bad West Team      88          False

La nouvelle colonne good_and_east renvoie les valeurs suivantes :

  • Vrai si l’équipe contient « Bon » et « Est »
  • Faux si l’équipe ne contient pas « Bon » et « Est »

Notez qu’une seule valeur True est renvoyée puisqu’il n’y a qu’un seul nom d’équipe contenant la sous-chaîne « Good » et la sous-chaîne « East ».

Ressources additionnelles

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

Pandas : ajouter une colonne d’un DataFrame à un autre
Pandas : obtenez des lignes qui ne se trouvent pas dans un autre DataFrame
Pandas : comment vérifier si plusieurs colonnes sont égales

Ajouter un commentaire

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