Håndtering av Manglende Verdier
Kun et begrenset antall maskinlæringsmodeller kan håndtere manglende verdier, så datasettet må kontrolleres for å sikre at det ikke finnes noen hull. Hvis manglende verdier er til stede, kan de håndteres på to måter:
- Fjerne rader som inneholder manglende verdier;
- Fylle tomme celler med erstatningsverdier, en prosess kjent som imputering.
Identifisere manglende verdier
For å vise generell informasjon om datasettet og sjekke etter manglende verdier, kan du bruke .info()
-metoden til en DataFrame.
12345import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') print(df.info())
Datasettet har 344 oppføringer, men kolonnene 'culmen_depth_mm'
, 'flipper_length_mm'
, 'body_mass_g'
og 'sex'
inneholder hver færre enn 344 ikke-null verdier, noe som indikerer at det finnes manglende data.
Null er et annet navn for manglende verdier.
For å identifisere antall manglende verdier i hver kolonne, bruk .isna()
-metoden og deretter .sum()
.
12345import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') print(df.isna().sum())
Rader som inneholder manglende verdier kan vises med:
df[df.isna().any(axis=1)]
12345import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') print(df[df.isna().any(axis=1)])
Fjerning av rader
De første og siste radene inneholder kun målvariabelen ('species'
) og 'island'
-verdier, og gir for lite informasjon til å være nyttige. Disse radene kan fjernes ved å beholde kun de med færre enn to NaN
-verdier og tilordne dem på nytt til df
.
123456import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') df = df[df.isna().sum(axis=1) < 2] print(df.head(8))
Til sammenligning inneholder de gjenværende radene nyttig informasjon, med NaN
-verdier kun i 'sex'
-kolonnen. I stedet for å fjerne disse radene, kan de manglende verdiene imputeres. En vanlig tilnærming er å bruke SimpleImputer
-transformatoren, som vil bli gjennomgått i neste kapittel.
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Awesome!
Completion rate improved to 3.13
Håndtering av Manglende Verdier
Sveip for å vise menyen
Kun et begrenset antall maskinlæringsmodeller kan håndtere manglende verdier, så datasettet må kontrolleres for å sikre at det ikke finnes noen hull. Hvis manglende verdier er til stede, kan de håndteres på to måter:
- Fjerne rader som inneholder manglende verdier;
- Fylle tomme celler med erstatningsverdier, en prosess kjent som imputering.
Identifisere manglende verdier
For å vise generell informasjon om datasettet og sjekke etter manglende verdier, kan du bruke .info()
-metoden til en DataFrame.
12345import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') print(df.info())
Datasettet har 344 oppføringer, men kolonnene 'culmen_depth_mm'
, 'flipper_length_mm'
, 'body_mass_g'
og 'sex'
inneholder hver færre enn 344 ikke-null verdier, noe som indikerer at det finnes manglende data.
Null er et annet navn for manglende verdier.
For å identifisere antall manglende verdier i hver kolonne, bruk .isna()
-metoden og deretter .sum()
.
12345import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') print(df.isna().sum())
Rader som inneholder manglende verdier kan vises med:
df[df.isna().any(axis=1)]
12345import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') print(df[df.isna().any(axis=1)])
Fjerning av rader
De første og siste radene inneholder kun målvariabelen ('species'
) og 'island'
-verdier, og gir for lite informasjon til å være nyttige. Disse radene kan fjernes ved å beholde kun de med færre enn to NaN
-verdier og tilordne dem på nytt til df
.
123456import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') df = df[df.isna().sum(axis=1) < 2] print(df.head(8))
Til sammenligning inneholder de gjenværende radene nyttig informasjon, med NaN
-verdier kun i 'sex'
-kolonnen. I stedet for å fjerne disse radene, kan de manglende verdiene imputeres. En vanlig tilnærming er å bruke SimpleImputer
-transformatoren, som vil bli gjennomgått i neste kapittel.
Takk for tilbakemeldingene dine!