Desafío: Imputación de Valores Faltantes
La clase SimpleImputer
está diseñada para manejar datos faltantes reemplazando automáticamente los valores ausentes.
from sklearn.impute import SimpleImputer
imputer = SimpleImputer()
Al inicializarse, también puede personalizarse configurando sus parámetros:
missing_value
: especifica el marcador de los valores faltantes. Por defecto, esnp.nan
;strategy
: la estrategia utilizada para imputar los valores faltantes.'mean'
es el valor predeterminado;fill_value
: especifica el valor que se utilizará para rellenar los valores faltantes cuando lastrategy
es'constant'
. Por defecto, esNone
.
Como transformador, dispone de los siguientes métodos:
También es necesario decidir qué valores utilizar para la imputación.
Un enfoque común es reemplazar los valores numéricos faltantes con la media y los valores categóricos faltantes con la moda (valor más frecuente), ya que esto distorsiona mínimamente la distribución de los datos.
La elección se controla mediante el parámetro strategy
:
strategy='mean'
: imputa con la media de cada columna;strategy='median'
: imputa con la mediana de cada columna;strategy='most_frequent'
: imputa con la moda de cada columna;strategy='constant'
: imputa con un valor constante especificado en el parámetrofill_value
.
El parámetro missing_values
define qué valores se tratan como faltantes. Por defecto, es NaN
, pero en algunos conjuntos de datos puede ser una cadena vacía ''
u otro marcador.
SimpleImputer
y muchos otros transformadores solo funcionan con DataFrames, no con Series de pandas. Seleccionar una sola columna de un DataFrame usando df['column']
devuelve una Serie. Para evitar esto, puede usar doble corchete df[['column']]
para asegurarse de que devuelva un DataFrame en su lugar:
imputer.fit_transform(df[['column']])
Cuando se aplica el método .fit_transform()
de SimpleImputer
, este devuelve un array 2D. Asignar valores a una sola columna en un DataFrame de pandas requiere un array 1D (o Series).
df['column'] = ... # Requires 1D array or Series
imputer.fit_transform(df[['column']]) # Produces 2D array
El método .ravel()
puede utilizarse para aplanar el array a 1D antes de la asignación:
df['column'] = imputer.fit_transform(df[['column']]).ravel()
Esto asegura que los valores imputados estén correctamente formateados y almacenados en la columna del DataFrame.
Swipe to start coding
Imputar los valores faltantes en la columna 'sex'
utilizando SimpleImputer
. Dado que esta es una columna categórica, reemplazar los valores NaN
con el valor más frecuente.
- Importar
SimpleImputer
. - Crear un objeto
SimpleImputer
con lastrategy
deseada. - Imputar los valores faltantes de la columna
'sex'
usando el objetoimputer
.
Solución
¡Excelente! Hemos resuelto el problema de los valores faltantes en nuestro conjunto de datos. Eliminamos las filas con más de un valor nulo e imputamos la columna 'sex'
con el valor más frecuente – MALE
.
¡Gracias por tus comentarios!
single
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Awesome!
Completion rate improved to 3.13
Desafío: Imputación de Valores Faltantes
Desliza para mostrar el menú
La clase SimpleImputer
está diseñada para manejar datos faltantes reemplazando automáticamente los valores ausentes.
from sklearn.impute import SimpleImputer
imputer = SimpleImputer()
Al inicializarse, también puede personalizarse configurando sus parámetros:
missing_value
: especifica el marcador de los valores faltantes. Por defecto, esnp.nan
;strategy
: la estrategia utilizada para imputar los valores faltantes.'mean'
es el valor predeterminado;fill_value
: especifica el valor que se utilizará para rellenar los valores faltantes cuando lastrategy
es'constant'
. Por defecto, esNone
.
Como transformador, dispone de los siguientes métodos:
También es necesario decidir qué valores utilizar para la imputación.
Un enfoque común es reemplazar los valores numéricos faltantes con la media y los valores categóricos faltantes con la moda (valor más frecuente), ya que esto distorsiona mínimamente la distribución de los datos.
La elección se controla mediante el parámetro strategy
:
strategy='mean'
: imputa con la media de cada columna;strategy='median'
: imputa con la mediana de cada columna;strategy='most_frequent'
: imputa con la moda de cada columna;strategy='constant'
: imputa con un valor constante especificado en el parámetrofill_value
.
El parámetro missing_values
define qué valores se tratan como faltantes. Por defecto, es NaN
, pero en algunos conjuntos de datos puede ser una cadena vacía ''
u otro marcador.
SimpleImputer
y muchos otros transformadores solo funcionan con DataFrames, no con Series de pandas. Seleccionar una sola columna de un DataFrame usando df['column']
devuelve una Serie. Para evitar esto, puede usar doble corchete df[['column']]
para asegurarse de que devuelva un DataFrame en su lugar:
imputer.fit_transform(df[['column']])
Cuando se aplica el método .fit_transform()
de SimpleImputer
, este devuelve un array 2D. Asignar valores a una sola columna en un DataFrame de pandas requiere un array 1D (o Series).
df['column'] = ... # Requires 1D array or Series
imputer.fit_transform(df[['column']]) # Produces 2D array
El método .ravel()
puede utilizarse para aplanar el array a 1D antes de la asignación:
df['column'] = imputer.fit_transform(df[['column']]).ravel()
Esto asegura que los valores imputados estén correctamente formateados y almacenados en la columna del DataFrame.
Swipe to start coding
Imputar los valores faltantes en la columna 'sex'
utilizando SimpleImputer
. Dado que esta es una columna categórica, reemplazar los valores NaN
con el valor más frecuente.
- Importar
SimpleImputer
. - Crear un objeto
SimpleImputer
con lastrategy
deseada. - Imputar los valores faltantes de la columna
'sex'
usando el objetoimputer
.
Solución
¡Excelente! Hemos resuelto el problema de los valores faltantes en nuestro conjunto de datos. Eliminamos las filas con más de un valor nulo e imputamos la columna 'sex'
con el valor más frecuente – MALE
.
¡Gracias por tus comentarios!
Awesome!
Completion rate improved to 3.13single