Pandalar: dizenin birden fazla alt dize içerip içermediğini kontrol edin


Pandas DataFrame’deki bir dizenin birden fazla alt dize içerip içermediğini kontrol etmek için aşağıdaki yöntemleri kullanabilirsiniz:

Yöntem 1: Dizenin birkaç alt dizeden birini içerip içermediğini kontrol edin

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

Yöntem 2: Dizenin birden fazla alt dize içerip içermediğini kontrol edin

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

Aşağıdaki örnekler, her yöntemin pratikte aşağıdaki pandalar DataFrame ile nasıl kullanılacağını gösterir:

 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

Örnek 1: Dizenin birkaç alt dizeden birini içerip içermediğini kontrol edin

Ekip sütunundaki her dizenin “İyi” veya “Is” alt dizesini içerip içermediğini kontrol etmek için aşağıdaki sözdizimini kullanabiliriz:

 #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

Yeni good_or_east sütunu aşağıdaki değerleri döndürür:

  • Takımda “İyi” veya “Evet” varsa doğrudur
  • Takımda ne “İyi” ne de “Evet” varsa yanlış

Not : | Operatör pandalarda “veya” anlamına gelir.

Örnek 2 : Dizenin birden fazla alt dize içerip içermediğini kontrol edin

Takım sütunundaki her dizenin “İyi” ve “Is” alt dizesini içerip içermediğini kontrol etmek için aşağıdaki sözdizimini kullanabiliriz:

 #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

Yeni good_and_east sütunu aşağıdaki değerleri döndürür:

  • Takımda “İyi” ve “Evet” varsa doğrudur
  • Takımda “İyi” ve “Is” bulunmuyorsa yanlış

“İyi” alt dizesini ve “Doğu” alt dizesini içeren yalnızca bir takım adı olduğundan yalnızca bir Gerçek değerinin döndürüldüğünü unutmayın.

Ek kaynaklar

Aşağıdaki eğitimlerde pandalarda diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:

Pandalar: bir DataFrame’den diğerine bir sütun ekleyin
Pandalar: Başka bir DataFrame’de olmayan satırları alın
Pandalar: birden fazla sütunun eşit olup olmadığı nasıl kontrol edilir

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir