No tienes acceso a esta clase

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

Ampl铆a tu conjunto de herramientas para explorar valores faltantes

5/17
Recursos

Aportes 8

Preguntas 0

Ordenar por:

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

o inicia sesi贸n.

Solucion planteada por el profe:

def missing_mosaic_plot(
        self,
        target_var: str,
        x_categorical_var: str,
        y_categorical_var: str,
        ax = None
    ):
        return (
            self._obj
            .assign(
                **{target_var: lambda df: df.weight.isna().replace([True, False], ["NA", "!NA"])}
            )
            .groupby(
                [x_categorical_var, y_categorical_var, target_var],
                dropna=False,
                as_index=True,
            )
            .size()
            .pipe(
                lambda df: mosaic(
                    data=df,
                    properties=lambda key: {"color": "r" if "NA" in key else "gray"},
                    ax=ax,
                    horizontal=True,
                    axes_label=True,
                    title="",
                    labelizer=lambda key: "",
                )
            )
        )

5. Ampl铆a tu conjunto de herramientas para explorar valores faltantes

fig, ax = plt.subplots(figsize=(10,10))

(
    nhanes_df
    .select_columns('weight','general_health_condition','gender')
    .assign(
        weight = lambda df: df.weight.isna().replace([True,False],['NA','!NA'])
    )
    .groupby(
        ['gender','general_health_condition','weight'],
        dropna=False,
        as_index = True
    )
    .size()
    .pipe(
        lambda df: mosaic(
            data = df,
            properties=lambda key: {'color':'r' if 'NA' in key else 'gray'},
            horizontal=True,
            axes_label=True,
            title='',
            labelizer=lambda key: '',
            ax = ax
        )
    )
);

yo lo hice directo en el notebook, compar茅 el codigo y es similar. Noten que el c贸digo del profe en pandas_missing_extension tienen un detalle: cambien el nombre de la columna 鈥榳eight鈥 por el par谩metro definido en la funci贸n. **{target_var: lambda df: df.weight.isna().replace([True, False], ["NA", "!NA"])}

Aqu铆 mi c贸digo:

def missing_mosaic_plot(df, cat1, cat2, var):
    fig, ax = plt.subplots(figsize=(10,10))
    
    my_mosaic = (
            df
            [[cat1, cat2, var]]
            .assign(
                **{
                    var: lambda df: df[var].isna().replace([False, True], ['!NA', 'NA'])
                }    
            )
            .groupby(
                [
                    cat1,
                    cat2,
                    var
                ],
                dropna=False,
                as_index=True
            )
            .size()
            .pipe(
                lambda df: mosaic(
                    df,
                    properties=lambda key: {
                        'color': 'r' if 'NA' in key else 'c'
                    },
                    horizontal=True,
                    axes_label=True,
                    title='',
                    labelizer=lambda key: '',
                    ax= ax
                )
            )
        )

    # plt.show()

    return my_mosaic

missing_mosaic_plot(nhanes_df, 'gender','general_health_condition', 'pulse')

Este es mi c贸digo del reto, funcional en Notebook, teniendo en cuenta que faltar铆an modificaciones ya que a煤n no se ha registrado como un accessor de DataFrame y no tiene acceso directo a self._obj.

def missing_mosaic_plot(
        self,
        categorical_variable_1: str,
        categorical_variable_2: str,
        missing_data_variable, str,
):

    fig, ax = plt.subplots(figsize = (15, 10))

    (
        self
        .select_columns(f"{missing_data_variable}", f"{categorical_variable_1}", f"{categorical_variable_2}")
        .assign(
            weight = lambda df : df[f"{missing_data_variable}"].isna().replace([True, False], ["NA", "隆NA"])
        )
        .groupby(
            [f"{categorical_variable_1}", f"{categorical_variable_2}", f"{missing_data_variable}"],
            dropna = False,
            as_index = True
        )
        .size()
        .pipe(
            lambda df : mosaic(
                data = df,
                properties = lambda key : {"color":"r" if "NA" in key else "gray"},
                horizontal = True,
                axes_label = True,
                title = " ",
                
                labelizer = lambda key: " ",
                ax = ax
            )
        )

    ) ;

Muy interesante el Grafico de Mosaico. Nos permite visualizar datos categoricos multivariantes de forma precisa e informativa.


pandas.DataFrame.groupby

dropna: bool, default True

as_index: bool, default True

Clase 04 - Tratamiento de datos faltantes

https://www.youtube.com/watch?v=NtAX81IuiNY
Universidad de Buenos Aires