Pandas konverterer kolonne til int

Pandas konverterer kolonne til int
Pandas er et gratis og åpen kildekode Python-bibliotek som gir raske, fleksible og uttrykksfulle datastrukturer som gjør det enkelt å jobbe med vitenskapelige data.

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 pandaer

På Linux, løp

$ sudo pip3 installer pandaer

I Anaconda eller Miniconda -miljøer, installer pandaer med conda.

$ conda installer pandaer
$ sudo conda installer pandas

Pandas 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 PD
df = pd.DataFrame ('id': ['1', '2', '3', '4', '5'],
'Navn': ['Marja Jérôme', 'Alexios Shiva', 'Mohan Famke', 'LovRenco Ilar', 'Steffen Angus'],
'Points': ['50000', '70899', '70000', '81000', '110000'])

Nå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.dypes

I vår prøve DataFrame kan vi få kolonnetypene som:

df.dypes
ID -objekt
Navnobjekt
poengobjekt
dtype: objekt

Vi 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')
  1. dtype - spesifiserer python -typen eller en numpy dtype som objektet konverteres.
  2. Kopi - lar deg returnere en kopi av objektet i stedet for å opptre på plass.
  3. Feil - spesifiserer handlingen i tilfelle feil. Som standard vil funksjonen øke feilene.

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.dypes
ID INT32
Navnobjekt
poengobjekt
dtype: objekt

ID -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.dypes
ID INT32
Navnobjekt
poeng int32
dtype: objekt

Vi 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": float
df = df.astype (konvertitt_to)

I 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.dypes
ID INT32
Navnobjekt
Poeng float64
dtype: objekt

Merk 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,
convert_integer = true, convert_boolean = true, convert_floating = 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.dypes
ID INT32
Navnstreng
poeng Int64
dtype: objekt

Du 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.