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. Som standard är dettanp.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'
. Som standard är dettaNone
.
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.
Ett vanligt tillvägagångssätt ä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 returnerar den 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
Imputera de saknade värdena i kolumnen 'sex'
med hjälp av SimpleImputer
. Eftersom detta är en kategorisk kolumn, ersätt NaN
-värden med det mest frekventa värdet.
- Importera
SimpleImputer
. - Skapa ett
SimpleImputer
-objekt med önskadstrategy
. - Imputera de saknade värdena i kolumnen
'sex'
med hjälp avimputer
-objektet.
Lösning
Utmärkt! Vi har hanterat problemet med saknade värden i vår datamängd. Vi tog bort rader med mer än en null 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. Som standard är dettanp.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'
. Som standard är dettaNone
.
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.
Ett vanligt tillvägagångssätt ä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 returnerar den 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
Imputera de saknade värdena i kolumnen 'sex'
med hjälp av SimpleImputer
. Eftersom detta är en kategorisk kolumn, ersätt NaN
-värden med det mest frekventa värdet.
- Importera
SimpleImputer
. - Skapa ett
SimpleImputer
-objekt med önskadstrategy
. - Imputera de saknade värdena i kolumnen
'sex'
med hjälp avimputer
-objektet.
Lösning
Utmärkt! Vi har hanterat problemet med saknade värden i vår datamängd. Vi tog bort rader med mer än en null och imputerade kolumnen 'sex'
med det mest frekventa värdet – MALE
.
Tack för dina kommentarer!
Awesome!
Completion rate improved to 3.13single