Finn strenger i pandaer

Finn strenger i pandaer

Denne artikkelen vil hjelpe deg med å forstå forskjellige metoder vi kan bruke for å søke etter en streng i en Pandas Dataframe.

Pandas inneholder metode

Pandaer gir oss en inneholder () -funksjon som gjør det mulig å søke hvis en substring er inneholdt i en Pandas -serie eller DataFrame.

Funksjonen godtar en bokstavelig streng eller et vanlig uttrykksmønster som deretter blir matchet mot de eksisterende dataene.

Funksjonssyntaksen er som vist:

Serie.str.inneholder (mønster, case = true, flagg = 0, na = ingen, regex = true)

Funksjonsparametrene uttrykkes som vist:

  1. mønster - refererer til karaktersekvensen eller regex -mønsteret for å søke.
  2. sak - Angir om funksjonen skal adlyde saksfølsomhet.
  3. flagg - Angir flaggene som skal sendes til regex -modulen.
  4. na - fyller de manglende verdiene.
  5. regex - Hvis det er sant, behandler inngangsmønsteret som et vanlig uttrykk.

Returverdi

Funksjonen returnerer en serie eller indeks over boolske verdier som indikerer om mønsteret/substringen finnes i DataFrame eller serien.

Eksempel

Anta at vi har et eksempel på DataFrame vist nedenfor:

# Importer pandaer
Importer pandaer som PD
df = pd.DataFrame ("full_names": ['Irene Coleman', 'Maggie Hoffman', 'Lisa Crawford', 'Willow Dennis', 'Emmett Shelton'])
df

Søk i en streng

For å søke etter en streng, kan vi passere substringen som mønsterparameter som vist:

trykk (df.full_names.str.inneholder ('Shelton'))

Koden over sjekker om strengen 'Shelton' er inneholdt i full_names kolonnene i DataFrame.

Dette bør returnere en serie boolske verdier som indikerer om strengen er plassert i hver rad i den spesifiserte kolonnen.

Et eksempel er som vist:

For å få den faktiske verdien, kan du passere resultatet av contactions () -metoden som indeksen for DataFrame.

Print (DF [DF.full_names.str.inneholder ('Shelton')])

Ovennevnte skal komme tilbake:

full_names
4 Emmett Shelton

Saksfølsom søk

Hvis saksfølsomhet er viktig i søket ditt, kan du stille sakenparameteren til True som vist:

trykk (df.full_names.str.inneholder ('Shelton', sak = true))

I eksemplet over setter vi saksparameteren til True, og muliggjør et saksfølsomt søk.

Siden vi søker etter små bokstaver 'Shelton, bør funksjonen ignorere den store bokstavekampen og returnere falsk.

Regex -søk

Vi kan også søke ved å bruke et vanlig uttrykksmønster. Et enkelt eksempel er som vist:

trykk (df.full_names.str.inneholder ('wi | em', case = falsk, regex = true)))

Vi søker etter enhver streng som samsvarer med mønstrene 'wi' eller 'em' i koden over. Merk at vi setter saksparameteren til falsk, ignorerer saksfølsomhet.

Koden over skal returnere:

Lukking

Denne artikkelen dekket hvordan du kan søke etter en substring i en pandas dataaframe ved hjelp av contacts () -metoden. Sjekk dokumentene for mer.