Panda: controlla se la stringa contiene più sottostringhe


È possibile utilizzare i seguenti metodi per verificare se una stringa in un DataFrame panda contiene più sottostringhe:

Metodo 1: controlla se la stringa contiene una delle numerose sottostringhe

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

Metodo 2: controlla se la stringa contiene più sottostringhe

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

I seguenti esempi mostrano come utilizzare ciascun metodo nella pratica con i seguenti DataFrame panda:

 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

Esempio 1: controlla se la stringa contiene una delle diverse sottostringhe

Possiamo utilizzare la seguente sintassi per verificare se ogni stringa nella colonna del team contiene la sottostringa “Buono” o “È”:

 #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 nuova colonna good_or_east restituisce i seguenti valori:

  • Vero se la squadra contiene “Buono” o “È”
  • Falso se la squadra non contiene né “Buono” né “È”

Nota : il | L’operatore significa “o” in panda.

Esempio 2 : controlla se la stringa contiene più sottostringhe

Possiamo utilizzare la seguente sintassi per verificare se ogni stringa nella colonna team contiene la sottostringa “Buono” e “Is”:

 #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 nuova colonna good_and_east restituisce i seguenti valori:

  • Vero se la squadra contiene “Buono” e “È”
  • Falso se la squadra non contiene “Buono” e “È”

Tieni presente che viene restituito un solo valore True poiché esiste un solo nome di squadra contenente la sottostringa “Buono” e la sottostringa “Est”.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni nei panda:

Panda: aggiungi una colonna da un DataFrame a un altro
Panda: ottieni righe che non si trovano in un altro DataFrame
Panda: come verificare se più colonne sono uguali

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *