Pandas er en av Pythons mest verdifulle dataanalyse og manipulasjonspakker.
Den tilbyr funksjoner som tilpassede datastrukturer som er bygget på toppen av Python.
Denne artikkelen vil diskutere konvertering av en kolonne fra en datatype til en INT -type innenfor en Pandas DataFrame.
Sette opp pandaer
Før vi dykker inn i hvordan vi skal utføre konverteringsoperasjonen, må vi sette opp pandaer i vårt Python -miljø.
Hvis du bruker basismiljøet i Anaconda -tolken, er sjansen stor for at du har pandaer installert.
Imidlertid, på en naturlig Python -installasjon, må du installere den manuelt.
Du kan gjøre det ved å kjøre kommandoen:
$ pip installer pandaerPå Linux, løp
$ sudo pip3 installer pandaerI Anaconda eller Miniconda -miljøer, installer pandaer med conda.
$ conda installer pandaerPandas lager prøve DataFrame
La oss sette opp et eksempel på dataframme for illustrasjonsformål i denne opplæringen. Du kan kopiere koden nedenfor eller bruke DataFrame.
Importer pandaer som PDNår DataFrame er opprettet, kan vi sjekke dataene.
Pandas viser kolonnetype
Det er godt å vite om den eksisterende typen kan støpes til en int før du konverterer en kolonne fra en type til en int.
For eksempel å prøve å konvertere en kolonne som inneholder navn, kan ikke konverteres til en int.
Vi kan se typen av en DataFrame ved hjelp av Dypes -egenskapen
Bruk syntaks:
Dataramme.dypesI vår prøve DataFrame kan vi få kolonnetypene som:
df.dypesVi kan se fra utgangen over at ingen av kolonnene har en INT -type.
Pandas konverter kolonne fra streng til int.
For å konvertere en enkelt kolonne til en int, bruker vi AstType () -funksjonen og passerer måldatatypen som parameter.
Funksjonssyntaks:
Dataramme.astype (dtype, copy = true, feil = 'heve')I vår prøve DataFrame kan vi konvertere ID -kolonnen til Int -typen ved å bruke AstType () -funksjonen som vist i koden nedenfor:
df ['id'] = df ['id'].astype (int)Koden over spesifiserer 'ID' -kolonnen som målobjekt. Vi passerer deretter en int som typen til AstType () -funksjonen.
Vi kan sjekke den nye datatypen for hver kolonne i DataFrame:
df.dypesID -kolonnen er konvertert til en int mens resten forblir uendret.
Pandas konverterer flere kolonner til int
AstType () -funksjonen lar oss konvertere mer enn en kolonne og konvertere dem til en bestemt type.
For eksempel kan vi kjøre følgende kode for å konvertere ID- og poengkolonnene til INT -type.
df [['id', 'poeng']] = df [['id', 'poeng']].astype (int)Her spesifiserer vi flere kolonner ved hjelp av den firkantede brakettnotasjonen. Dette lar oss konvertere kolonnene til den datatypen som er spesifisert i AstType () -funksjonen.
Hvis vi sjekker kolonnetypen, bør vi se en utgang:
df.dypesVi kan nå se at ID- og poengkolonnen er konvertert til INT32 -type.
Pandas konverterer flere kolonner til flere typer
AstType () -funksjonen lar oss spesifisere en kolonne- og måltype som ordbok.
Anta at vi ønsker å konvertere ID -kolonnen til INT32 og punkter -kolonnen til Float64.
Vi kan kjøre følgende kode:
convert_to = "id": int, "poeng": floatI koden over starter vi med å definere en ordbok som holder målkolonnen som nøkkelen og måltypen som verdi.
Vi bruker deretter AstType () -funksjonen for å konvertere kolonnene i ordboken til de angitte typene.
Kontroller kolonnetypene skal returnere:
df.dypesMerk at ID -kolonnen er INT32 og punkter -kolonnen er av float32 -type.
Pandas konverterer kolonne til int - to_numeric ()
Pandas gir oss også To_Numeric () -funksjonen. Denne funksjonen lar oss konvertere en kolonne til en numerisk type.
Funksjonssyntaksen er som vist:
Pandas.to_numeric (arg, feil = 'heve', nedsatt = ingen)For å konvertere ID -kolonnen til numerisk i vår prøve DataFrame, kan vi for eksempel kjøre:
df ['id'] = PD.to_numeric (df ['id'])Koden skal ta ID -kolonnen og konvertere den til en INT -type.
Pandas konverterer DataFrame til best mulig datatype
Convert_dtypes () -funksjonen i pandaer lar oss konvertere en hel dataaFrame til nærmeste mulige type.
Funksjonssyntaksen er som vist:
Dataramme.convert_dtypes (infer_objects = true, convert_string = true,Du kan sjekke dokumentene i ressursen nedenfor:
https: // pandas.PyData.org/dokumenter/referanse/api/pandas.Dataramme.konvertere_dtypes.html
For eksempel, for å konvertere prøven DataFrame til nærmeste mulige type, kan vi kjøre: for eksempel:
df = df.konvertere_dtypes ()Hvis vi sjekker typen:
df.dypesDu vil merke at hver kolonne er konvertert til nærmeste passende type. For eksempel konverterer funksjonen små INTS til INT32 TYPE.
På samme måte konverteres navnene til strengtype da den holder strengverdier.
Til slutt, siden Points -kolonnen har større heltall, konverteres den til en INT64 -type.
Konklusjon
I denne artikkelen ga vi detaljerte metoder og eksempler på å konvertere en Pandas dataaframe fra en type til en annen.