Udfordring: Imputering af Manglende Værdier
Klassen SimpleImputer er designet til at håndtere manglende data ved automatisk at erstatte manglende værdier.
from sklearn.impute import SimpleImputer
imputer = SimpleImputer()
Ved initialisering kan den også tilpasses ved at angive dens parametre:
missing_value: angiver pladsholderen for de manglende værdier. Som standard er dettenp.nan;strategy: strategien, der bruges til at imputere manglende værdier.'mean'er standardværdien;fill_value: Angiver værdien, der skal bruges til at udfylde manglende værdier, nårstrategyer'constant'. Som standard er detteNone.
Som en transformer har den følgende metoder:
Det er også nødvendigt at beslutte, hvilke værdier der skal bruges til imputering.
En almindelig tilgang er at erstatte manglende numeriske værdier med gennemsnittet og manglende kategoriske værdier med typetallet (mest hyppige værdi), da dette kun minimalt forvrænger datadistributionen.
Valget styres af parameteren strategy:
strategy='mean': imputering med gennemsnittet af hver kolonne;strategy='median': imputering med medianen af hver kolonne;strategy='most_frequent': imputering med typetallet af hver kolonne;strategy='constant': imputering med en konstant værdi angivet i parameterenfill_value.
Parameteren missing_values definerer, hvilke værdier der behandles som manglende. Som standard er dette NaN, men i nogle datasæt kan det være en tom streng '' eller en anden pladsholder.
SimpleImputer og mange andre transformere fungerer kun med DataFrames, ikke med pandas Series. Udvælgelse af en enkelt kolonne fra en DataFrame ved hjælp af df['column'] returnerer en Series. For at undgå dette kan du bruge dobbelte klammer df[['column']] for at sikre, at det returnerer en DataFrame i stedet:
imputer.fit_transform(df[['column']])
Når .fit_transform()-metoden fra SimpleImputer anvendes, returnerer den et 2D-array. Tildeling af værdier til en enkelt kolonne i en pandas DataFrame kræver et 1D-array (eller Series).
df['column'] = ... # Requires 1D array or Series
imputer.fit_transform(df[['column']]) # Produces 2D array
Metoden .ravel() kan bruges til at flade arrayet ud til 1D før tildeling:
df['column'] = imputer.fit_transform(df[['column']]).ravel()
Dette sikrer, at de imputerede værdier er korrekt formateret og gemt i DataFrame-kolonnen.
Swipe to start coding
Du har fået en DataFrame ved navn df, som indeholder information om pingviner. Kolonnen 'sex' indeholder nogle manglende (NaN) værdier. Din opgave er at udfylde disse mangler ved at anvende den mest almindelige kategori i denne kolonne.
- Importér klassen
SimpleImputerfrasklearn.impute. - Opret et
SimpleImputer-objekt med parameterenstrategysat til'most_frequent'. - Anvend imputeren på kolonnen
'sex'for at erstatte alle manglende værdier. - Opdater kolonnen
'sex'idfDataFrame med de imputerede data.
Løsning
Fremragende! Vi håndterede problemet med manglende værdier i vores datasæt. Vi fjernede rækkerne med mere end én null og imputerede kolonnen 'sex' med den mest hyppige værdi – MALE.
Tak for dine kommentarer!
single
Spørg AI
Spørg AI
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
Udfordring: Imputering af Manglende Værdier
Stryg for at vise menuen
Klassen SimpleImputer er designet til at håndtere manglende data ved automatisk at erstatte manglende værdier.
from sklearn.impute import SimpleImputer
imputer = SimpleImputer()
Ved initialisering kan den også tilpasses ved at angive dens parametre:
missing_value: angiver pladsholderen for de manglende værdier. Som standard er dettenp.nan;strategy: strategien, der bruges til at imputere manglende værdier.'mean'er standardværdien;fill_value: Angiver værdien, der skal bruges til at udfylde manglende værdier, nårstrategyer'constant'. Som standard er detteNone.
Som en transformer har den følgende metoder:
Det er også nødvendigt at beslutte, hvilke værdier der skal bruges til imputering.
En almindelig tilgang er at erstatte manglende numeriske værdier med gennemsnittet og manglende kategoriske værdier med typetallet (mest hyppige værdi), da dette kun minimalt forvrænger datadistributionen.
Valget styres af parameteren strategy:
strategy='mean': imputering med gennemsnittet af hver kolonne;strategy='median': imputering med medianen af hver kolonne;strategy='most_frequent': imputering med typetallet af hver kolonne;strategy='constant': imputering med en konstant værdi angivet i parameterenfill_value.
Parameteren missing_values definerer, hvilke værdier der behandles som manglende. Som standard er dette NaN, men i nogle datasæt kan det være en tom streng '' eller en anden pladsholder.
SimpleImputer og mange andre transformere fungerer kun med DataFrames, ikke med pandas Series. Udvælgelse af en enkelt kolonne fra en DataFrame ved hjælp af df['column'] returnerer en Series. For at undgå dette kan du bruge dobbelte klammer df[['column']] for at sikre, at det returnerer en DataFrame i stedet:
imputer.fit_transform(df[['column']])
Når .fit_transform()-metoden fra SimpleImputer anvendes, returnerer den et 2D-array. Tildeling af værdier til en enkelt kolonne i en pandas DataFrame kræver et 1D-array (eller Series).
df['column'] = ... # Requires 1D array or Series
imputer.fit_transform(df[['column']]) # Produces 2D array
Metoden .ravel() kan bruges til at flade arrayet ud til 1D før tildeling:
df['column'] = imputer.fit_transform(df[['column']]).ravel()
Dette sikrer, at de imputerede værdier er korrekt formateret og gemt i DataFrame-kolonnen.
Swipe to start coding
Du har fået en DataFrame ved navn df, som indeholder information om pingviner. Kolonnen 'sex' indeholder nogle manglende (NaN) værdier. Din opgave er at udfylde disse mangler ved at anvende den mest almindelige kategori i denne kolonne.
- Importér klassen
SimpleImputerfrasklearn.impute. - Opret et
SimpleImputer-objekt med parameterenstrategysat til'most_frequent'. - Anvend imputeren på kolonnen
'sex'for at erstatte alle manglende værdier. - Opdater kolonnen
'sex'idfDataFrame med de imputerede data.
Løsning
Fremragende! Vi håndterede problemet med manglende værdier i vores datasæt. Vi fjernede rækkerne med mere end én null og imputerede kolonnen 'sex' med den mest hyppige værdi – MALE.
Tak for dine kommentarer!
single