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
Can you explain more about how imputing works?
What are some other ways to handle missing values besides removing or imputing?
Why is it important to handle missing values before training a machine learning model?
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!