Pandy: sprawdź, czy ciąg zawiera wiele podciągów


Możesz użyć następujących metod, aby sprawdzić, czy ciąg w ramce DataFrame pandy zawiera wiele podciągów:

Metoda 1: Sprawdź, czy ciąg zawiera jeden z kilku podciągów

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

Metoda 2: Sprawdź, czy ciąg zawiera wiele podciągów

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

Poniższe przykłady pokazują, jak w praktyce używać każdej metody z następującą ramką DataFrame pand:

 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

Przykład 1: Sprawdź, czy ciąg zawiera jeden z kilku podciągów

Możemy użyć następującej składni, aby sprawdzić, czy każdy ciąg w kolumnie zespołu zawiera podciąg „Dobry” lub „Jest”:

 #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

Nowa kolumna good_or_east zwraca następujące wartości:

  • Prawda , jeśli zespół zawiera „Dobry” lub „Jest”
  • Fałsz , jeśli zespół nie zawiera ani „Dobrego”, ani „Jest”

Uwaga : | Operator oznacza „lub” w pandach.

Przykład 2 : Sprawdź, czy ciąg zawiera wiele podciągów

Możemy użyć następującej składni, aby sprawdzić, czy każdy ciąg w kolumnie zespołu zawiera podciąg „Dobry” i „Jest”:

 #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

Nowa kolumna good_and_east zwraca następujące wartości:

  • Prawda , jeśli zespół zawiera „Dobry” i „Jest”
  • Fałsz , jeśli zespół nie zawiera „Dobry” i „Jest”

Należy pamiętać, że zwracana jest tylko jedna wartość True , ponieważ istnieje tylko jedna nazwa zespołu zawierająca podciąg „Dobry” i „Wschód”.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w pandach:

Pandy: dodaj kolumnę z jednej ramki DataFrame do drugiej
Pandy: Uzyskaj wiersze, których nie ma w innej ramce DataFrame
Pandy: jak sprawdzić, czy wiele kolumn jest równych

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *