No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Aprende todo un fin de semana sin pagar una suscripción 🔥

Aprende todo un fin de semana sin pagar una suscripción 🔥

Regístrate

Comienza en:

3D
18H
49M
37S

Imputación por llenado hacia atrás y hacia adelante

10/17
Recursos

Aportes 4

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

Le embocamos un apply y listo el polio

(
    nhanes_df
    .select_columns("height", "weight", "gender", "diabetes", "general_health_condition")
    .sort_values(
        by=['gender','diabetes','general_health_condition','weight'],
        ascending=True
    )
    .groupby(["gender", "general_health_condition"], dropna=False)
    .apply(lambda x: x.ffill())
)

Muy útil la recomendación a la hora de hacer la imputación hacia adelante organizar por datos o grupos similares, de esta manera los datos reemplazados se parecen a sus semejantes.

Esta sera la resolucion al reto? creo falto un poquito de claridad sobre lo que se buscaba, o sere yo muy noob.

Yo entendi qee habia que agrupar por las variables categoricas que son genero y condicion general de salud.

Y alli si aplicar el transform_column().

(
    nhanes_df
    .select_columns("height", "weight", "gender", "diabetes", "general_health_condition")
    .groupby(["gender", "general_health_condition"], dropna=False).value_counts(dropna=False)
    .reset_index()
    .transform_column(
        "weight",
        lambda x: x.bfill(),
        elementwise = False
    )
    .transform_column(
        "height",
        lambda x: x.bfill(),
        elementwise = False
    )
    .head(20)
)

No entendi muy bien el reto porque al aplicar un groupby lo que hago es eliminar o agrupar las observaciones duplicadas y cambiara completamente los resultados, en fin cumpliendo con el reto esta es mi solucion

(
    nhanes_df
    .select_columns('height','weight','gender','diabetes','general_health_condition')
    .groupby(['gender','diabetes','general_health_condition','height','weight'], as_index=False, dropna=False).sum()
    .pipe(
        lambda df: (df.sort_values(
            by=['gender','diabetes','general_health_condition','height'],
            ascending=True
            )
            .transform_columns(
                ['weight','height','general_health_condition'],
                lambda x: x.ffill(),
                elementwise=False
            )
        )
    )
)