No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Eliminaci贸n de valores faltantes: pairwise y listwise

18/21
Recursos

Aportes 10

Preguntas 0

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

Eliminacion de Valores Faltantes

Cuando se trata de valores faltantes tenemos dos aproximaciones para el tratamiento de los mismos:

  • Eliminacion de valores faltantes: La eliminaci贸n de valores faltantes asume que los valores faltantes est谩n perdidos completamente al azar (MCAR). En cualquier otro caso, realizar una eliminaci贸n de valores faltantes podr谩 ocasionar sesgos en los an谩lisis y modelos subsecuentes. Por tanto, es importante investigar que mecanismos tienen los datos para asi evitar los sesgos a la hora de eliminarlos
  • Imputacion de valores faltantes: consiste en a帽adir valores en los datos faltantes para mantener el registro en el dataset

Pasos para la Eliminacion de Valores Faltantes

  • Observa el numero de observaciones y variables que tiene el conjunto de datos
riskfactors_df.shape
--> (245, 34)
  • Pairwise deletion (Eliminacion por pares)
#Pandas por defecto,ignora los registros con datos faltantes a la hora de hacer algun calculo
(
    riskfactors_df
    .weight_lbs
    .mean()
)
--> 174.26808510638298
  • Listwise deletion or Complete case (Eliminacion por lista o caso completo)
  1. Con base a 1 columna
(
    riskfactors_df
    .dropna(
        subset=['weight_lbs'], # indica la variable donde buscar los valores faltantes
        how='any' # any indica en cualquier registro que aparezca un valor faltante
    )
)
  1. Con base a 2 columnas
(
    riskfactors_df
    .dropna(
        subset=['weight_lbs', 'height_inch'], # indica el parametro donde buscar los valores faltantes
        how='any' # algoritmo con el que eliminar los registros
    )
    .shape
)

--> (234, 34)
  1. Con base a 2 columnas que tengan valores faltantes en los mismos registros
# elimina los registros en los que hayan valores faltantes en dos variables al mismo tiempo
(
    riskfactors_df
    .dropna(
        subset=['weight_lbs', 'height_inch'], # indica el parametro donde buscar los valores faltantes
        how='all' # all indica los registros donde hayan valores faltantes en ambas variables
    )
    .shape
)
--> (244, 34)
  • Representacion Grafica tras la eliminacion de valores faltantes
  1. Con any
(
    riskfactors_df
    .dropna(
        subset=['weight_lbs', 'height_inch'], # indica el parametro donde buscar los valores faltantes
        how='any' # any indica en cualquier registro que aparezca un valor faltante
    )
    .select_columns(['weight_lbs', 'height_inch'])
    .pipe(missingno.matrix)
)
  1. Con all
(
    riskfactors_df
    .dropna(
        subset=['weight_lbs', 'height_inch'], # indica el parametro donde buscar los valores faltantes
        how='all' # algoritmo con el que eliminar los registros
    )
    .select_columns(['weight_lbs', 'height_inch'])
    .pipe(missingno.matrix)
)

https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.dropna.html

how{鈥榓ny鈥, 鈥榓ll鈥檥, default 鈥榓ny鈥

Determine if row or column is removed from DataFrame when we have at least one NA or all NA.

  • 鈥榓ny鈥 : If any NA values are present, drop that row or column.

  • 鈥榓ll鈥 : If all values are NA, drop that row or column.

En este link (https://rstudio-pubs-static.s3.amazonaws.com/821023_ab4ec671210149bb906d38d12bb951e4.html) podr谩n ampliar la informaci贸n que hemos visto en este curso a nivel te贸rico.

Al parecer, el parametro 鈥渉ow鈥 solo tiene uso si hay mas de 2 variables en cuestion a las que identificaremos sus valores faltantes.

Si se fijaron, en dropna cuando puso el par谩metro "all" quedaron **m谩s** elementos que con el par谩metro "any" Esto se debe a que "all" solo elimina si todos los valores de las filas o columnas seleccionadas son NaN. Y "any" elimina todas las filas o columnas seleccionadas si cualquiera de los valores son NaN. Es decir, any elimina la fila si peso O talla son NaN all elimina la fila SOLO SI peso Y talla son NaN (por eso solo elimina un valor) Les dejo mi apunte sobre este tema El par谩metro `how` de la funci贸n `dropna` en Pandas es fundamental para determinar c贸mo se deben tratar las filas o columnas que contienen valores `NaN` (Not a Number) cuando se limpian los datos. Este par谩metro define el criterio bajo el cual una fila o columna ser谩 eliminada de un DataFrame debido a la presencia de valores nulos. * **Evaluaci贸n de Datos**: Antes de decidir entre `'any'` y `'all'`, es importante evaluar la naturaleza de los datos faltantes y el impacto de su eliminaci贸n en el an谩lisis posterior. * **Complemento con** `fillna`: Para minimizar la p茅rdida de datos, considere utilizar el m茅todo `fillna` para imputar valores faltantes antes de optar por eliminar filas o columnas con `dropna`. * **Revisi贸n Manual**: En algunos casos, especialmente con datasets peque帽os, una revisi贸n manual de los datos puede ofrecer una mejor perspectiva sobre c贸mo manejar los valores `NaN`. ### Uso ```js how : {'any', 'all'}, default 'any' ``` ### Descripci贸n de los argumentos: * `'any'`: Si se selecciona este valor, la funci贸n `dropna` eliminar谩 cualquier fila o columna que contenga al menos un valor `NaN`. Es el valor por defecto porque es una opci贸n conservadora que permite eliminar los datos incompletos sin descartar en exceso filas o columnas que podr铆an tener la mayor铆a de sus valores v谩lidos. * `'all'`: Al elegir `'all'`, `dropna` solo eliminar谩 las filas o columnas donde todos los valores son `NaN`. Este enfoque es m谩s permisivo y 煤til cuando solo se desea eliminar filas o columnas que est茅n completamente vac铆as, lo cual puede ser indicativo de datos faltantes en su totalidad o de registros que no fueron ingresados correctamente. ***Buenas pr谩cticas*** * **Evaluaci贸n de Datos**: Antes de decidir entre `'any'` y `'all'`, es importante evaluar la naturaleza de los datos faltantes y el impacto de su eliminaci贸n en el an谩lisis posterior. * **Complemento con** `fillna`: Para minimizar la p茅rdida de datos, considere utilizar el m茅todo `fillna` para imputar valores faltantes antes de optar por eliminar filas o columnas con `dropna`. * **Revisi贸n Manual**: En algunos casos, especialmente con datasets peque帽os, una revisi贸n manual de los datos puede ofrecer una mejor perspectiva sobre c贸mo manejar los valores `NaN`.
Por favor me pueden ayudar con el siguiente error cuando ejecuto el siguiente c贸digo:```python riskfactors_df.mean(skipna=False) ```![]()![](https://ibb.co/193ZmDm)```python TypeError: 'Categorical' with dtype category does not support reduction 'mean' Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings... ```TypeError: 'Categorical' with dtype category does not support reduction 'mean' Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings...
(
    riskfactors_df
    .dropna(
        subset=["weight_lbs", "height_inch"],
        how="any"
    )
    .select_columns(["weight_lbs", "height_inch"])
    .pipe(missingno.matrix)
) 

18. Eliminaci贸n de valores faltantes: pairwise y listwise

驴C贸mo lograrlo?

  • Eliminaci贸n de valores faltantes. Pandas hace pairwise deletion en las operaciones de numeros. M茅todo preferido
  • Imputaci贸n de valores faltantes