Pipe In R: Koblingsfunksjoner med Dplyr
I denne opplæringen lærer du hvordan du kobler funksjoner sammen ved å bruke dplyr-røroperatøren i programmeringsspråket R.
Arbeid med strenger er en vanlig oppgave i Python. Du må ofte finne ut om en streng inneholder en annen streng.
De enkleste metodene for å sjekke om en Python-streng inneholder en understreng inkluderer 'in'-operatoren, find()-funksjonen og index()-metoden. Mer komplekse scenarier kan løses med regulære uttrykk eller et eksternt bibliotek som Pandas.
Denne artikkelen viser deg:
fire enkle metoder
to mer komplekse regex-funksjoner
en metode som bruker Pandas-biblioteket
Du vil lære hver teknikk gjennom eksempler på syntaks og bruk. Du vil også få tips om hvilken metode som passer best for ulike krav.
La oss komme i gang!
Innholdsfortegnelse
Grunnleggende om Python Strings
En streng i Python er en sekvens av tegn som brukes til å representere tekstbaserte data. De kan inneholde bokstaver, sifre, symboler og mellomrom.
Det er en av Pythons innebygde datatyper og kan opprettes ved å bruke enten:
enkelt anførselstegn (' ')
doble anførselstegn (" ")
trippel anførselstegn (”' ”' eller “”” “””)
Strenger er indeksert, noe som betyr at du kan få tilgang til spesifikke tegn ved å referere til deres indeksnummer. Startindeksen er 0, som betyr at det første tegnet i en streng har en indeks på 0, det andre har en indeks på 1, og så videre.
Deretter ser vi på måter å se etter understrenger.
4 enkleste måter å se etter understrenger
Python gir mange måter å sjekke om en bestemt delstreng finnes i en større streng. Noen er mer komplekse enn andre. For de mest grunnleggende kontrollene er de enkleste metodene in-operatoren eller en av tre strengmetoder.
i operatør
find() metode
index() metode
count() metode
1. I Operatør
'in'-operatoren i Python er en enkel og intuitiv måte å sjekke om en streng finnes i en annen streng. Denne operatøren sjekker for medlemskap og returnerer en boolsk verdi:
Sant hvis delstrengen finnes innenfor hovedstrengen
Falsk hvis den ikke er det
Her er litt eksempelkode:
s = "Hello, world!"
sub = "world"
result = sub in s
print(result) # Output: True
"In"-operatøren skiller mellom store og små bokstaver. Dette betyr at den behandler små og store bokstaver som forskjellige. Koden ovenfor vil ikke finne delstrengen "hei", så operatøren returnerer falsk.
Hvis du vil utføre en sjekk som ikke skiller mellom store og små bokstaver, kan du konvertere både hovedstrengen og understrengen til samme store og små bokstaver før du utfører kontrollen:
s = "Hello, world!"
sub = "hello"
result = sub.lower() in s.lower()
print(result) # Output: True
Ulempen med in-operatoren er at den ikke gir posisjonen til delstrengen i hovedstrengen. For det trenger du en annen metode i denne delen. Les videre…
2. Finn()-metoden
Find ()- metoden returnerer den første indeksen der delstrengen vises, eller -1 hvis delstrengen ikke blir funnet.
Du kaller find()- metoden på en streng s , og sender understrengen som et argument. Her er et eksempel:
s = "Hello, world!"
sub = "world"
index = s.find(sub)
if index != -1:
print("Found at index:", index) # Output: Found at index: 7
else:
print("Not found")
Du kan eventuelt spesifisere en start- eller sluttindeks for å begrense søket. Ulempen med denne metoden er at den stopper ved første gang.
3. Indeks() metode
Indeks ()- metoden er ganske lik find()- metoden, bortsett fra at den gir en ValueError når delstrengen ikke blir funnet. Dette betyr at du bør legge samtalen inn i en Prøv/unntatt-del.
For å bruke index()- metoden kaller du den på en streng s , og sender understrengen som et argument.
s = "Hello, world!"
sub = "world"
try:
index = s.index(sub)
print("Found at index:", index) # Output: Found at index: 7
except ValueError:
print("Not found")
Denne metoden stopper også ved den første delstrengen inne i teksten.
4. Count() metode
.count () -metoden teller hvor mange ganger en delstreng forekommer i den opprinnelige strengen. Den returnerer et heltall som representerer dette antallet. Hvis delstrengen ikke finnes i hovedstrengen, returnerer den 0.
Her er et enkelt eksempel som ser etter bokstaven "o" i teksten "Hei, verden!":
s = "Hello, world!"
sub = "o"
print(s.count(sub)) # Output:2
2 måter å matche strenger med regulære uttrykk
Å bruke (regex) er litt mer kompleks enn metodene i forrige avsnitt. De gir deg imidlertid flere muligheter for å søke og analysere teksten du har å gjøre med.
To av de enkleste måtene i re- modulen er:
Søk()
finneall()
1. re.Search()
Search ()- funksjonen i re- modulen søker etter et mønster i en gitt streng og returnerer et matchobjekt hvis et samsvar blir funnet. Ellers returnerer den Ingen .
Som standard skiller funksjonen mellom store og små bokstaver. Du kan bruke re.IgnoreCase- flagget for å unngå store og små bokstaver.
Her er et enkelt eksempel som bruker betingede utsagn basert på om strengen er funnet:
import re
pattern = "python"
text = "I love Python programming"
match = re.search(pattern, text, re.IGNORECASE)
if match:
print("Pattern found")
else:
print("Pattern not found")
Merk at denne metoden finner det første treffet og deretter slutter å søke. Hvis du vil finne alle treff, så er den neste på denne listen for deg.
2. re.Findall()
Denne metoden finner alle forekomster av et søkemønster i en gitt streng og returnerer en liste som inneholder alle treff.
Dette eksemplet bruker et mønster som samsvarer med ett eller flere siffer i en streng. Tekststrengen "123, 456, 789" inneholder tre sekvenser med sifre.
import re
pattern = "d+"
text = "123, 456, 789"
numbers = re.findall(pattern, text)
print(numbers)
Dette er svaret fra eksempelkoden: ['123', '456', '789'].
Hvordan finne understrenger med pandaer
Pandas er et populært dataanalyse- og manipulasjonsbibliotek med åpen kildekode for Python. Det gir datastrukturer og funksjoner som trengs for å manipulere og analysere strukturerte data.
En av de primære datastrukturene levert av Pandas er DataFrame. Du kan bruke denne allsidige datastrukturen til å se etter en streng i en annen.
Fordelen med Pandas er at den gir pakker med kode som du må skrive mye på andre programmeringsspråk. Spesielt er mye kraft pakket inne i inneholder-funksjonen.
str.contains() Funksjon i Pandas
Str.contains () -metoden tester om et spesifisert mønster eller regulært uttrykk er inneholdt i en streng i en DataFrame-kolonne.
Her er et eksempel som importerer biblioteket og søker etter en streng i en liste med strenger:
import pandas as pd
# Creating a sample DataFrame
data = {'fruits': ['apple', 'banana', 'cherry', 'watermelon', 'orange']}
df = pd.DataFrame(data)
# Searching for substrings in the 'fruits' column
has_an = df['fruits'].str.contains(pat='an', regex=False)
# Filtering the DataFrame based on the search results
filtered_df = df[has_an]
print(filtered_df)
I dette eksemplet søker vi etter understrengen 'an' i 'frukt'-kolonnen og filtrerer DataFrame deretter. Utgangen vil være:
1 banan
4 oransje
Hvis du leter etter flere eksempler på hva Pandas kan gjøre, sjekk ut denne videoen:
Tips for å velge en spesifikk metode i Python
Valget av metode avhenger i stor grad av de spesifikke kravene til oppgaven din.
Her er fire grunner til å velge en av metodene du har lært fra denne artikkelen, pluss en bonusmetode du vil lære andre steder på denne bloggen:
Behandlingshastighet
Du må vite plasseringen av delstrengen
Du må vite antall forekomster av delstrengen
Du ønsker å matche komplekse mønstre
Utføre tekstanalyse
1. Behandlingshastighet
'in' 0perator er det beste valget hvis du bare vil vite om det finnes en understreng i en streng.
Det er enkelt, intuitivt og raskt for dette formålet. Den gir imidlertid ikke informasjon om plasseringen eller antallet av delstrengen.
2. Plassering av understreng
Bruk metodene .find() eller .index() hvis du trenger å vite posisjonen til den første forekomsten av en delstreng i en streng.
De returnerer begge indeksen for den første forekomsten av delstrengen.
3. Antall delstreng
Bruk .count() -metoden når du vil vite hvor mange ganger en delstreng forekommer i en streng.
4. Komplekse mønstre
Hvis du trenger å matche komplekse mønstre eller utføre søk som ikke skiller mellom store og små bokstaver, er regulære uttrykk de mest fleksible. Re.search () -funksjonen kan håndtere mønstre utover enkle understrenger og kan enkelt utføre søk som ikke skiller mellom store og små bokstaver.
Vanlige uttrykk kan imidlertid være overkill for enkle understrengsjekker og kan også være tregere og mer komplekse å bruke og vedlikeholde.
5. Utføre tekstanalyse
Sjekk ut artikkelen vår på , som viser deg hvordan du jobber med textblob-biblioteket.
Du kan bruke .tags- funksjonen for å se etter deler av tale eller .ngram- funksjonen for å finne ord som ofte vises sammen i et dokument.
Siste tanker
Du har lært syv metoder for å sjekke om et ord eller strengobjekt finnes i et annet. Disse inkluderte medlemskapsoperatører, innebygde funksjoner, regex og Pandas-funksjoner.
Hver metode er riktig for noen situasjoner, men ikke for alle. Bruk denne artikkelen når du mestrer Python-programmeringsspråket og bruker den beste løsningen for strenganalyseoppgaven din.
Husk at det ikke finnes en metode som passer for alle. Hver tilnærming har sine egne fordeler og særheter, så velg gjerne den som passer stilen din eller det spesielle problemet du prøver å løse. På slutten av dagen handler Python om å gjøre livet ditt enklere, så omfavn fleksibiliteten!
I denne opplæringen lærer du hvordan du kobler funksjoner sammen ved å bruke dplyr-røroperatøren i programmeringsspråket R.
RANKX fra LuckyTemplates lar deg returnere rangeringen til et spesifikt tall i hver tabellrad som utgjør en del av en liste med tall.
Lær hvordan du demonterer en PBIX-fil for å trekke ut LuckyTemplates-temaer og bilder fra bakgrunnen og bruke den til å lage rapporten din!
Excel Formulas Cheat Sheet: Mellomveiledning
LuckyTemplates-kalendertabell: Hva er det og hvordan du bruker det
Lær hvordan du installerer programmeringsspråket Python i LuckyTemplates og hvordan du bruker verktøyene til å skrive koder og vise visuelle elementer.
Lær hvordan du beregner dynamiske fortjenestemarginer ved siden av LuckyTemplates og hvordan du kan få mer innsikt ved å grave dypere inn i resultatene.
Lær hvordan du sorterer feltene fra kolonner med utvidet datotabell på riktig måte. Dette er en god strategi å gjøre for vanskelige felt.
I denne artikkelen går jeg gjennom hvordan du kan finne de beste produktene dine per region ved å bruke DAX-beregninger i LuckyTemplates, inkludert TOPN- og CALCUATE-funksjonene.
Lær hvordan du bruker en søppeldimensjon for flagg med lav kardinalitet som du ønsker å inkludere i datamodellen din på en effektiv måte.