Panda's: controleer of de string meerdere substrings bevat


U kunt de volgende methoden gebruiken om te controleren of een tekenreeks in een Pandas DataFrame meerdere subtekenreeksen bevat:

Methode 1: Controleer of de string een van meerdere substrings bevat

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

Methode 2: Controleer of de string meerdere substrings bevat

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

De volgende voorbeelden laten zien hoe u elke methode in de praktijk kunt gebruiken met de volgende panda’s DataFrame:

 import pandas as pd

#createDataFrame
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

Voorbeeld 1: Controleer of de string één of meerdere substrings bevat

We kunnen de volgende syntaxis gebruiken om te controleren of elke tekenreeks in de teamkolom de subtekenreeks ‚Goed‘ of ‚Is‘ bevat:

 #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

De nieuwe kolom good_or_east retourneert de volgende waarden:

  • Waar als het team ‚Goed‘ of ‚Is‘ bevat
  • Onwaar als het team noch “Goed” noch “Is” bevat

Opmerking : de | De operator betekent „of“ in panda’s.

Voorbeeld 2 : Controleer of string meerdere substrings bevat

We kunnen de volgende syntaxis gebruiken om te controleren of elke string in de teamkolom de substring “Good” en “Is” bevat:

 #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

De nieuwe kolom good_and_east retourneert de volgende waarden:

  • Waar als het team ‚Goed‘ en ‚Is‘ bevat
  • Onwaar als het team geen ‘Goed’ en ‘Is’ bevat

Houd er rekening mee dat er slechts één True- waarde wordt geretourneerd, omdat er slechts één teamnaam is die de subtekenreeks ‚Goed‘ en de subtekenreeks ‚Oost‘ bevat.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in panda’s kunt uitvoeren:

Panda’s: voeg een kolom toe van het ene DataFrame naar het andere
Panda’s: Haal rijen op die zich niet in een ander DataFrame bevinden
Panda’s: hoe controleer je of meerdere kolommen gelijk zijn?

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert