Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Håndtering af Manglende Værdier | Forbehandling af Data med Scikit-learn
ML Introduktion med Scikit-learn

bookHåndtering af Manglende Værdier

Kun et begrænset antal maskinlæringsmodeller kan håndtere manglende værdier, så datasættet skal kontrolleres for at sikre, at der ikke er nogen huller tilbage. Hvis der er manglende værdier, kan de håndteres på to måder:

  • Fjernelse af rækker, der indeholder manglende værdier;
  • Udfyldning af tomme celler med erstatningsværdier, en proces kendt som imputering.

Identifikation af manglende værdier

For at vise generel information om datasættet og kontrollere for manglende værdier, kan du bruge .info()-metoden på en DataFrame.

12345
import 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())
copy

Datasættet har 344 poster, men kolonnerne 'culmen_depth_mm', 'flipper_length_mm', 'body_mass_g' og 'sex' indeholder hver færre end 344 ikke-nulle værdier, hvilket indikerer tilstedeværelsen af manglende data.

Note
Bemærk

Null er et andet navn for manglende værdier.

For at identificere antallet af manglende værdier i hver kolonne, anvendes metoden .isna() og derefter .sum().

12345
import 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())
copy

Rækker med manglende værdier kan vises med: df[df.isna().any(axis=1)]

12345
import 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)])
copy

Fjernelse af rækker

De første og sidste rækker indeholder kun target ('species') og 'island' værdier, hvilket giver for lidt information til at være nyttigt. Disse rækker kan fjernes ved kun at beholde dem med færre end to NaN værdier og tildele dem til df igen.

123456
import 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))
copy

I modsætning hertil indeholder de resterende rækker nyttig information, hvor NaN værdier kun forekommer i 'sex' kolonnen. I stedet for at fjerne disse rækker kan de manglende værdier imputeres. En almindelig tilgang er at bruge SimpleImputer transformeren, som vil blive gennemgået i næste kapitel.

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 3

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Awesome!

Completion rate improved to 3.13

bookHåndtering af Manglende Værdier

Stryg for at vise menuen

Kun et begrænset antal maskinlæringsmodeller kan håndtere manglende værdier, så datasættet skal kontrolleres for at sikre, at der ikke er nogen huller tilbage. Hvis der er manglende værdier, kan de håndteres på to måder:

  • Fjernelse af rækker, der indeholder manglende værdier;
  • Udfyldning af tomme celler med erstatningsværdier, en proces kendt som imputering.

Identifikation af manglende værdier

For at vise generel information om datasættet og kontrollere for manglende værdier, kan du bruge .info()-metoden på en DataFrame.

12345
import 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())
copy

Datasættet har 344 poster, men kolonnerne 'culmen_depth_mm', 'flipper_length_mm', 'body_mass_g' og 'sex' indeholder hver færre end 344 ikke-nulle værdier, hvilket indikerer tilstedeværelsen af manglende data.

Note
Bemærk

Null er et andet navn for manglende værdier.

For at identificere antallet af manglende værdier i hver kolonne, anvendes metoden .isna() og derefter .sum().

12345
import 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())
copy

Rækker med manglende værdier kan vises med: df[df.isna().any(axis=1)]

12345
import 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)])
copy

Fjernelse af rækker

De første og sidste rækker indeholder kun target ('species') og 'island' værdier, hvilket giver for lidt information til at være nyttigt. Disse rækker kan fjernes ved kun at beholde dem med færre end to NaN værdier og tildele dem til df igen.

123456
import 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))
copy

I modsætning hertil indeholder de resterende rækker nyttig information, hvor NaN værdier kun forekommer i 'sex' kolonnen. I stedet for at fjerne disse rækker kan de manglende værdier imputeres. En almindelig tilgang er at bruge SimpleImputer transformeren, som vil blive gennemgået i næste kapitel.

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 3
some-alt