Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Tratamiento de Valores Faltantes | Preprocesamiento de Datos con Scikit-learn
Quizzes & Challenges
Quizzes
Challenges
/
Introducción al Aprendizaje Automático con Python

bookTratamiento de Valores Faltantes

Solo un número limitado de modelos de aprendizaje automático pueden manejar valores faltantes, por lo que se debe verificar el conjunto de datos para asegurar que no queden vacíos. Si hay valores faltantes, se pueden abordar de dos maneras:

  • Eliminando las filas que contienen valores faltantes;
  • Rellenando las celdas vacías con valores sustitutos, un proceso conocido como imputación.

Identificación de valores faltantes

Para mostrar información general sobre el conjunto de datos y verificar si existen valores faltantes, se puede utilizar el método .info() de un 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

El conjunto de datos tiene 344 registros, pero las columnas 'culmen_depth_mm', 'flipper_length_mm', 'body_mass_g' y 'sex' contienen cada una menos de 344 valores no nulos, lo que indica la presencia de datos faltantes.

Note
Nota

Null es otro nombre para los valores faltantes.

Para identificar el número de valores faltantes en cada columna, aplica el método .isna() y luego utiliza .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

Las filas que contienen valores faltantes pueden visualizarse con: 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

Eliminación de filas

La primera y la última fila contienen únicamente los valores de destino ('species') y 'island', proporcionando muy poca información para ser útiles. Estas filas pueden eliminarse conservando solo aquellas con menos de dos valores NaN y reasignándolas a df.

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

En cambio, las filas restantes contienen información útil, con valores NaN que aparecen solo en la columna 'sex'. En lugar de eliminar estas filas, los valores faltantes pueden ser imputados. Un enfoque común es utilizar el transformador SimpleImputer, que se tratará en el siguiente capítulo.

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 3

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

bookTratamiento de Valores Faltantes

Desliza para mostrar el menú

Solo un número limitado de modelos de aprendizaje automático pueden manejar valores faltantes, por lo que se debe verificar el conjunto de datos para asegurar que no queden vacíos. Si hay valores faltantes, se pueden abordar de dos maneras:

  • Eliminando las filas que contienen valores faltantes;
  • Rellenando las celdas vacías con valores sustitutos, un proceso conocido como imputación.

Identificación de valores faltantes

Para mostrar información general sobre el conjunto de datos y verificar si existen valores faltantes, se puede utilizar el método .info() de un 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

El conjunto de datos tiene 344 registros, pero las columnas 'culmen_depth_mm', 'flipper_length_mm', 'body_mass_g' y 'sex' contienen cada una menos de 344 valores no nulos, lo que indica la presencia de datos faltantes.

Note
Nota

Null es otro nombre para los valores faltantes.

Para identificar el número de valores faltantes en cada columna, aplica el método .isna() y luego utiliza .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

Las filas que contienen valores faltantes pueden visualizarse con: 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

Eliminación de filas

La primera y la última fila contienen únicamente los valores de destino ('species') y 'island', proporcionando muy poca información para ser útiles. Estas filas pueden eliminarse conservando solo aquellas con menos de dos valores NaN y reasignándolas a df.

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

En cambio, las filas restantes contienen información útil, con valores NaN que aparecen solo en la columna 'sex'. En lugar de eliminar estas filas, los valores faltantes pueden ser imputados. Un enfoque común es utilizar el transformador SimpleImputer, que se tratará en el siguiente capítulo.

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 3
some-alt