Utmaning: Imputera Saknade Värden
Klassen SimpleImputer är utformad för att hantera saknade data genom att automatiskt ersätta saknade värden.
from sklearn.impute import SimpleImputer
imputer = SimpleImputer()
Vid initiering kan den även anpassas genom att ställa in dess parametrar:
missing_value: anger platshållaren för de saknade värdena. Standardvärdet ärnp.nan;strategy: strategin som används för att imputera saknade värden.'mean'är standardvärdet;fill_value: Anger värdet som ska användas för att fylla saknade värden närstrategyär'constant'. Standardvärdet ärNone.
Som en transformer har den följande metoder:
Det är också nödvändigt att bestämma vilka värden som ska användas för imputering.
En vanlig metod är att ersätta saknade numeriska värden med medelvärdet och saknade kategoriska värden med typvärdet (det mest frekventa värdet), eftersom detta minimalt förvränger datafördelningen.
Valet styrs av parametern strategy:
strategy='mean': imputera med medelvärdet för varje kolumn;strategy='median': imputera med medianen för varje kolumn;strategy='most_frequent': imputera med typvärdet för varje kolumn;strategy='constant': imputera med ett konstant värde som anges i parameternfill_value.
Parametern missing_values definierar vilka värden som behandlas som saknade. Som standard är detta NaN, men i vissa dataset kan det vara en tom sträng '' eller en annan platshållare.
SimpleImputer och många andra transformatorer fungerar endast med DataFrames, inte med pandas Series. Om du väljer en enskild kolumn från en DataFrame med df['column'] returneras en Series. För att undvika detta kan du använda dubbla hakparenteser df[['column']] för att säkerställa att det returneras en DataFrame istället:
imputer.fit_transform(df[['column']])
När metoden .fit_transform() från SimpleImputer används returneras en 2D-array. För att tilldela värden till en enskild kolumn i en pandas DataFrame krävs en 1D-array (eller Series).
df['column'] = ... # Requires 1D array or Series
imputer.fit_transform(df[['column']]) # Produces 2D array
Metoden .ravel() kan användas för att platta ut arrayen till 1D innan tilldelning:
df['column'] = imputer.fit_transform(df[['column']]).ravel()
Detta säkerställer att de imputerade värdena är korrekt formaterade och lagras i DataFrame-kolumnen.
Swipe to start coding
Du har fått en DataFrame vid namn df som innehåller information om pingviner. Kolumnen 'sex' innehåller vissa saknade (NaN) värden. Din uppgift är att fylla dessa luckor med den vanligaste kategorin i denna kolumn.
- Importera klassen
SimpleImputerfrånsklearn.impute. - Skapa ett
SimpleImputer-objekt med parameternstrategysatt till'most_frequent'. - Applicera imputern på kolumnen
'sex'för att ersätta alla saknade värden. - Uppdatera kolumnen
'sex'i DataFramedfmed de imputerade uppgifterna.
Lösning
Utmärkt! Vi har hanterat problemet med saknade värden i vår datamängd. Vi tog bort rader med mer än ett null-värde och imputerade kolumnen 'sex' med det mest frekventa värdet – MALE.
Tack för dina kommentarer!
single
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Awesome!
Completion rate improved to 3.13
Utmaning: Imputera Saknade Värden
Svep för att visa menyn
Klassen SimpleImputer är utformad för att hantera saknade data genom att automatiskt ersätta saknade värden.
from sklearn.impute import SimpleImputer
imputer = SimpleImputer()
Vid initiering kan den även anpassas genom att ställa in dess parametrar:
missing_value: anger platshållaren för de saknade värdena. Standardvärdet ärnp.nan;strategy: strategin som används för att imputera saknade värden.'mean'är standardvärdet;fill_value: Anger värdet som ska användas för att fylla saknade värden närstrategyär'constant'. Standardvärdet ärNone.
Som en transformer har den följande metoder:
Det är också nödvändigt att bestämma vilka värden som ska användas för imputering.
En vanlig metod är att ersätta saknade numeriska värden med medelvärdet och saknade kategoriska värden med typvärdet (det mest frekventa värdet), eftersom detta minimalt förvränger datafördelningen.
Valet styrs av parametern strategy:
strategy='mean': imputera med medelvärdet för varje kolumn;strategy='median': imputera med medianen för varje kolumn;strategy='most_frequent': imputera med typvärdet för varje kolumn;strategy='constant': imputera med ett konstant värde som anges i parameternfill_value.
Parametern missing_values definierar vilka värden som behandlas som saknade. Som standard är detta NaN, men i vissa dataset kan det vara en tom sträng '' eller en annan platshållare.
SimpleImputer och många andra transformatorer fungerar endast med DataFrames, inte med pandas Series. Om du väljer en enskild kolumn från en DataFrame med df['column'] returneras en Series. För att undvika detta kan du använda dubbla hakparenteser df[['column']] för att säkerställa att det returneras en DataFrame istället:
imputer.fit_transform(df[['column']])
När metoden .fit_transform() från SimpleImputer används returneras en 2D-array. För att tilldela värden till en enskild kolumn i en pandas DataFrame krävs en 1D-array (eller Series).
df['column'] = ... # Requires 1D array or Series
imputer.fit_transform(df[['column']]) # Produces 2D array
Metoden .ravel() kan användas för att platta ut arrayen till 1D innan tilldelning:
df['column'] = imputer.fit_transform(df[['column']]).ravel()
Detta säkerställer att de imputerade värdena är korrekt formaterade och lagras i DataFrame-kolumnen.
Swipe to start coding
Du har fått en DataFrame vid namn df som innehåller information om pingviner. Kolumnen 'sex' innehåller vissa saknade (NaN) värden. Din uppgift är att fylla dessa luckor med den vanligaste kategorin i denna kolumn.
- Importera klassen
SimpleImputerfrånsklearn.impute. - Skapa ett
SimpleImputer-objekt med parameternstrategysatt till'most_frequent'. - Applicera imputern på kolumnen
'sex'för att ersätta alla saknade värden. - Uppdatera kolumnen
'sex'i DataFramedfmed de imputerade uppgifterna.
Lösning
Utmärkt! Vi har hanterat problemet med saknade värden i vår datamängd. Vi tog bort rader med mer än ett null-värde och imputerade kolumnen 'sex' med det mest frekventa värdet – MALE.
Tack för dina kommentarer!
single