Pandas: periksa apakah string berisi banyak substring
Anda dapat menggunakan metode berikut untuk memeriksa apakah string dalam pandas DataFrame berisi beberapa substring:
Metode 1: Periksa apakah string berisi salah satu dari beberapa substring
df[' string_column ']. str . contains (' | ' .join ([' string1 ',' string2 ']))
Metode 2: Periksa apakah string berisi beberapa substring
df[' string_column ']. str . contains ( r'^(?=.*string1)(?=.*string2)' )
Contoh berikut menunjukkan cara menggunakan setiap metode dalam praktik dengan pandas DataFrame berikut:
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
Contoh 1: Periksa apakah string berisi salah satu dari beberapa substring
Kita dapat menggunakan sintaks berikut untuk memeriksa apakah setiap string di kolom tim berisi substring “Baik” atau “Apakah”:
#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
Kolom good_or_east yang baru mengembalikan nilai berikut:
- Benar jika tim berisi “Baik” atau “Apakah”
- Salah jika tim tidak berisi “Baik” atau “Is”
Catatan : | Operator berarti “atau” dalam panda.
Contoh 2 : Periksa apakah string berisi beberapa substring
Kita dapat menggunakan sintaks berikut untuk memeriksa apakah setiap string di kolom tim berisi substring “Baik” dan “Apakah”:
#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
Kolom baru good_and_east mengembalikan nilai berikut:
- Benar jika tim berisi “Baik” dan “Apakah”
- Salah jika tim tidak mengandung “Baik” dan “Apakah”
Perhatikan bahwa hanya satu nilai True yang dikembalikan karena hanya ada satu nama tim yang berisi substring “Baik” dan substring “Timur”.
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di panda:
Pandas: tambahkan kolom dari satu DataFrame ke DataFrame lainnya
Pandas: Dapatkan baris yang tidak ada di DataFrame lain
Pandas: cara memeriksa apakah beberapa kolom sama