Pandas str erstatning

Pandas str erstatning
Verdier i en dataaframe eller andre gjenstander av pandaer kan erstattes ved hjelp av erstatningsmetoden () i pandaer. I Python kan vi bruke denne metoden for datamanipulering og rengjøring av dataene. Denne opplæringen vil lære deg hvordan vi kan erstatte verdier eller data fra den gitte DataFrame ved hjelp av Pandas Str.erstatte () funksjon. I DataFrame kan vi erstatte strengdata og til og med vanlige uttrykk (REGEX) ved å bruke Pandas DataFrame.str.erstatte () funksjon. I likhet med Pythons erstatning () -funksjon, STR.erstatte () metode i pandaer fungerer også på serier.

str.erstatte()

Metoden str.erstatte () brukes til å erstatte en streng eller regex med en strengverdi eller data. Erstatning () -funksjonen kan erstatte hva som helst med noe annet, også strengene og regex. Ta en titt på STR.erstatt () funksjonens syntaks.

Syntaks

Pandas.Serie.str.erstatte (klapp, repl, n = -1, case = ingen, flagg = 0, regex = ingen)

Parametere:

  1. klapp: kompilert regex eller str. Regelmessige uttrykk eller karaktersekvenser kan begge brukes som strenger.
  2. Repl: Kallbar eller Str. Erstatningsstreng eller omgivende. En erstatningsstreng må returneres av det omtalende for at den skal brukes etter å ha mottatt Regex Match -objektet.
  3. n: Som standard, sett som -1, int. Total erstatning som skal gjøres.
  4. sak: Ingen som standard, bool. Finner ut om "erstatt" er case-sensitiv:
    1. Sak sensitiv, hvis sant.
    2. For sakens ufølsomhet, satt til FALSE
    3. Hvis PAT er spesifisert som en samlet regex, kan den tases.
  5. flagg: 0 eller ingen flagg som standard, int. Flagg i regex -modulen, som re.Ignorecase. Hvis PAT er spesifisert som en samlet regex, kan den ikke settes.
  6. regex: Sant som standard, bool. Identifiserer om et vanlig uttrykk er til stede i det beståtte mønsteret: Hvis det er sant, anses det passerte mønsteret for å være et vanlig uttrykk. Ellers blir mønsteret behandlet som en bokstavelig streng.

Scenario 1: STR.Erstatt () i dataaframe

Vi vil bruke denne funksjonen på Pandas DataFrame -kolonner for å erstatte enkelt/flere verdier. Vi vil se flere eksempler i dette scenariet.

Syntaks:
Enkelt -

DataFrame_Object ['Column'].str.erstatte ('gammel', 'ny')

Flere-

DataFrame_Object ['Column'].erstatte ([gamle verdier…], [nye verdier…])

Her er gammel den eksisterende strengen og ny er den nye strengen som erstatter den eksisterende.

Eksempel 1: Erstatt enkeltstreng
I dette eksemplet har vi en dataaframe som heter "poster" som holder "kjemisk", "alfabet" og "valens" -kolonner. Bytt ut 'hydrogen' med "hydrogenkjemikalie" i den kjemiske kolonnen.

Importer pandaer
poster = pandaer.DataFrame ('kjemisk': ['Hydrogen', 'Nitrogen', 'Oxygen', 'Hydrogen', 'Natrium'],
'Alfabet': ['hy', 'n', 'o', 'hy', 'na'],
'Valency': [10, 2, 3, 4, 11])
trykk (poster)
# Bytt ut 'Hydrogen' med "Hydrogenkjemikalie" i den kjemiske kolonnen.
poster ['kjemisk'] = poster ['kjemisk'].str.erstatte(
'Hydrogen', 'Hydrogen Chemical')
skrive ut()
trykk (poster)

Produksjon:

Forklaring
Det er to strenger med 'hydrogen' i den kjemiske kolonnen. Så begge ble erstattet med “Hydrogen Chemical”.

Eksempel 2: Erstatt enkelt tegn
I dette eksemplet har vi en dataaframe som heter "poster" som holder "kjemisk" og "alfabet" -kolonner. Bytt ut 'O' med “O” i alfabetets kolonne.

Importer pandaer
poster = pandaer.DataFrame ('Chemical': ['Hydrogen', 'Nitrogen', 'Oxygen', 'Hydrogen'],
'Alfabet': ['hy', 'n', 'o', 'nei'])
trykk (poster)
# Erstatt 'o' med "o" i alfabetets kolonne.
registrerer ['alfabet'] = poster ['alfabet'].str.erstatte ('o', 'o')
skrive ut()
trykk (poster)

Produksjon:

Det er to tegn i alfabetets kolonne. Så begge ble erstattet med “O”.

Eksempel 3: Bytt ut flere strenger
La oss erstatte 'hydrogen' med 'hydrogen', 'oksygen' med 'oksy' og 'svovel' med 's' i den kjemiske kolonnen

Importer pandaer
poster = pandaer.DataFrame ('kjemisk': ['Hydrogen', 'Nitrogen', 'Oxygen', 'Hydrogen', 'Sulphur'],
'Alfabet': ['hy', 'n', 'o', 'nei', 'sul'])
trykk (poster)
# Bytt ut flere verdier om gangen.
poster ['kjemisk'] = poster ['kjemisk'].erstatte (['hydrogen', 'oksygen', 'svovel'], ['hydrogen', 'oxy', 's'])
skrive ut()
trykk (poster)

Produksjon:

2 “Hydrogen” -strenger erstattes med “Hydrogen”, 1 “Oksygen” og “Sulphur” erstattes med “Oxy” og “S”.

Eksempel 4: Bytt ut flere strenger ved bruk av ordbok
La oss erstatte 'hydrogen' med 'syre' og 'svovel' med 'base' i den kjemiske kolonnen

Importer pandaer
poster = pandaer.DataFrame ('kjemisk': ['Hydrogen', 'Nitrogen', 'Oxygen', 'Hydrogen', 'Sulphur'],
'Alfabet': ['hy', 'n', 'o', 'nei', 'sul'])
trykk (poster)
# Bytt ut flere verdier om gangen.
poster ['kjemisk'] = poster ['kjemisk'].erstatte ('hydrogen': 'syre', 'svovel': 'base')
skrive ut()
trykk (poster)

Produksjon:

2 “Hydrogen” -strenger erstattes med “Syre” og 1 “Svovel” erstattes med “Base”.

Scenario 2: STR.Erstatte () i serie

La oss lage en Pandas -serie og erstatte strenger med nye strenger med et regex -mønster. Vi kan spesifisere substringen som må byttes ut i RE.kompilere () metode, og denne kan sendes innenfor erstatningsmetoden som den første parameteren og den nye strengen som den andre parameteren som erstatter substring.

Syntaks:

Enkelt -serie_objekt.str.Erstatt (re.kompilere (“gammel),” nytt ”)

Her er gammel den eksisterende strengen og ny er den nye strengen som erstatter den eksisterende.

Eksempel: Erstatt enkeltstreng
I dette eksemplet har vi en serie som heter “Record” som holder 4 strenger.
Bytt ut substring - “Gen” med “og”.

Importer pandaer
Import re
# Lag Pandas -serier med 4 strenger
Record = Pandas.Serie (['hydrogen', 'nitrogen', 'hy', 'n'])
# Bytt ut substring - "Gen" med "og".
trykk (post.str.Erstatt (re.kompilere ("Gen"), "og"))
skrive ut()
# Bytt ut substring - "Gen" med "og" ved å ignorere saken.
trykk (post.str.Erstatt (re.kompilere ("gen", flagg = re.Ignorecase), "og"))

Produksjon:

Forklaring

  1. I den første utgangen ignorerer vi ikke sakenesensitiviteten. Så "gen" og "gen" er forskjellige. Ettersom "Gen" ikke eksisterer i serien, blir det ikke gjort noen erstatning.
  2. I den andre utgangen ignorerer vi saksfølsomheten ved å sette “Flags = RE.Ignorecase ”. Så "gen" og "gen" er de samme. Den erstattes med "og". Derfor er de oppdaterte strengene - “Hydroand” og “Nitroand”.

Konklusjon

Vi lærer deg hvordan du erstatter/erstatter strengverdiene i pandaer. Vi har diskutert syntaksen til STR.erstatte () metode for å forstå dens funksjonalitet. Vi implementerte noen få eksempler i denne opplæringen for å lære deg hvordan du kan erstatte strengverdiene med strengdata, erstatte et bestemt tegn, erstatte en substring eller tegnsekvens med strengverdiene og erstatte flere strenger fra DataFrame -kolonnen ved hjelp av STR.erstatte () og erstatte () funksjoner. Også hvordan du erstatter strenger fra serien ved hjelp av regex.