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)])
Fjerne 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
Fantastisk!
Completion rate forbedret til 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)])
Fjerne 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!