Pandas ApplyMap

Pandas ApplyMap
Python er et utmerket språk for å utføre dataanalyse, hovedsakelig på grunn av det sterke økosystemet av Python -programmer fokusert på håndtering av data. Et slikt verktøy, pandaer, forenkler import og analyse av data i stor grad. Hvert element i en dataaframe brukes med en funksjon ved bruk av ApplyMap () -metoden, som mottar og returnerer en skalar. Den primære fordelen med pandaer er muligheten til å transformere data og anvende analyse. Disse funksjonene (kart (), ApplyMap () og Apply ()) brukes alle til å endre dataene, men det er noen distinksjoner mellom dem og subtile variasjoner i hvordan de brukes. Imidlertid vil vi bare diskutere Applymap ().

Hvordan bruke ApplyMap -funksjonen i Windows

Enkeltfunksjonen tillater elementmessig handling gjennom hele DataFrame er ApplyMap (), som bare er tilgjengelig i DataFrame.

Selv om noen scenarier presterer raskere enn å bruke () takket være optimalisering, er det fortsatt en god idé å sammenligne de to før de utfører noen tyngre operasjoner.

Syntaks:

Dataramme.ApplyMap (func)

Parametere

func: En enkelt verdi returneres med en enkelt verdi i en Python -funksjon.

Produksjon: Transformert DataFrame.

Bare DataFrame definerer denne teknikken. Dataframe.ApplyMap () godtar bare kallbar. For DataFrames er ApplyMap () elementsmessig. ApplyMap () er mer effektivt enn å bruke (). Ett stykke/element om gangen kan betjenes ved hjelp av ApplyMap () -funksjonen.

Eksempel 1: Legg til verdi til hvert element i datarammen ved å bruke ApplyMap ()

La oss først importere et online datasett (IRIS_DATA), slik at vi kan bruke ApplyMap () -funksjonen vår for å vise resultatene.

Du må importere pandaene og legge til objektet “PD” i koden for å støtte pandaene. Enkle matematiske prosedyrer er relativt lettere å utføre. I henhold til aksen du definerer, blir funksjonsargumentet når anvendelse () brukes på en dataaframe hele raden eller kolonnen. Hva om du ønsket å bruke en spesifikk funksjon på hver datarammekomponent i stedet for bare hver rad og kolonne? Når dette skjer, er ApplyMap () nyttig. Tenk på en situasjon der det er begått en feil, og du vil rette den opp ved å legge en til hvert element i dataene dine, siden du har oppdaget at feilen var en repeterbar måling unøyaktighet. For å begynne, la oss definere en hjelperfunksjon:

Vi har definert en add_one -funksjon og bestått varen som et argument. Det vil returnere elementet + 1, noe som betyr at det vil legge en til hver dataoppføring i datasettet. La oss bruke det på hvert element i den opprinnelige datarammen, unntatt målkolonnen, ved å bruke ApplyMap ().

Hvis du kontrasterer denne utgangen med originalen, vil du se at hver oppføring har hatt en lagt til. Det demonstrerer ApplyMap () funksjonspotensial.

Eksempel 2: Beregning av lengden på hvert element i datarammen ved hjelp av ApplyMap ()

Akkurat som det forrige eksemplet, vil vi importere pandaer og et datasett for å starte arbeidet. Nå, hva bruker ApplyMap () -funksjonen? Er det å operere på datarammer, eller vil den bruke en funksjon på hvert eneste element i datarammen? For eksempel, med denne datarammen, opprettet vi den her. Vi har alle disse forskjellige verdiene. ApplyMap () -funksjonen vil ta en viss funksjon og elementmessig kjører den på enkeltverdien i hele denne datarammen og deretter returnere en dataramme med hva resultatet av den funksjonen er. Nå, siden datarammer ofte har data av forskjellige typer på tvers av forskjellige kolonner, er ApplyMap () litt mindre vanlig av en funksjon som skal brukes enn Apply () eller Map ().

Som sett over har vi noen tall i kolonner og noen tegnstrenger. Så hvis vi ønsket å passere en funksjon som bare fungerer på tall i ApplyMap (), vil det kaste en feil fordi det kan gjelde priskolonnen. Imidlertid er andre kolonner streng. Så det ville ikke fungere med det. Vi må sørge for å passere en funksjon som kommer til å fungere på både tall og strenger. Nedenfor har vi definert en funksjon som skal fungere på enten tall eller strenger:

Det forrige skriptet vil konvertere disse tallene til en streng ved hjelp av str () -funksjonen. Deretter vil den bare sjekke lengden ved hjelp av Len () -funksjonen. Så vi kan definere denne funksjonen. Hvis vi gir det for ApplyMap (), vil vi få en dataramme som en utgang med lengden på alle disse forskjellige oppføringene i vår dataramme.

Eksempel 3: Endre/erstatte verdiene til datarammeelementene ved å bruke ApplyMap () -funksjonen

Pandas's ApplyMap () -funksjonen bruker en brukerdefinert funksjon for å oppdatere datarammens element-for-element-innhold etter å ha mottatt en Pandas dataramme som input. Med en ordbok kan vi lage en lambda -funksjon som vil gi en ny verdi for hvert element i datarammen som en utgang for å oppdatere verdiene til en dataramme. La oss bruke den samme illustrasjonen på erstatning () og kart () -funksjonene til Pandas -biblioteket for å erstatte verdiene i en dataramme med de fra en ordbok.

Ved å bruke eksemplet () -funksjonen i den tilfeldige modulen, vil vi produsere noen eksempeldata.

Nå opprettes en dataramme med en strengdatatype.

Vi ønsker å erstatte noen av datarammens verdier med nye. Her skal vi bygge en ordbok med de nye verdiene som fungerer som ordboksverdier og de gamle verdiene som fungerer som nøkler.

Vi kan nå oppdatere verdier element-for-element ved hjelp av Pandas ApplyS () -funksjonen. Lambda -funksjonen vil bli passert som input i ApplyMap () -funksjonen. Lambda -funksjonens inngang er et element, og utgangen er resultatet av å bruke en ordbok for å spørre nøkkelen.

Og som et resultat mottar vi en dataramme med oppdaterte verdier.

Eksempel 4: Endre verdier/elementer i en dataramme ved hjelp av ApplyMap () -funksjonen

Vi lager først en dataramme med spesifikke rader og kolonner og spesifiserer navnene på indeksene.

La oss multiplisere hvert element i datarammen med 10.

Hver komponent i DF DataFrame multipliseres, og utgangen lagres i Alt DF DataFrame. ApplyMap () -funksjonen mottar en lambda -funksjon som en parameter og returnerer et resultat ved å multiplisere hvert element eller verdi med 10. Som et resultat er DataFrame DFs elementer alle skalert av 10. Når en navnløs funksjon er nødvendig for en kort varighet, brukes lambda -funksjoner. Vanligvis bruker vi det som et argument til en høyere ordenfunksjon i Python. Sammen med innebygde metoder som ApplyMap () og filter (), brukes lambda-funksjoner.

Vi kan bruke forskjellige operasjoner på DataFrames komponenter i tillegg til matematiske.

Som du kan se i forrige bilde, har vi lagt ved .99 til hver verdi inne i DF -datarammen. Vi kan også bruke strengverdier for å legge til dataene i stedet for numeriske data.

Konklusjon

I denne artikkelen lærte vi hvordan du kan bruke ApplyMap () -funksjonen i Python ved hjelp av Pandas Library. Vi har sett at ApplyMap () -metoden fungerer på hele datarammen på element-for-element-basis. Dette lærte oss hvordan vi bruker Python Pandas Dataframe.ApplyMap () -metode. Vi jobbet gjennom eksempler ved å bruke denne metoden på DataFrame for å forstå hvordan du legger til verdier, beregner lengden og erstatter og endrer verdier for hvert element i vår dataramme ved å bruke ApplyMap () -funksjonen.