Me sucedió que al ejecutar los métodos de tabulación como:
df.missing.missing_variable_table()
df.missing.missing_case_table()
Me devolvía un error porque no encontraba la variable “n_variables”
.
Esto ocurre porque en el método escrito de pandas-missing-extension, que es esta para missing_variable_table():
def missing_variable_table(self) -> pd.DataFrame:
return (
self._obj.missing.missing_variable_summary()
.value_counts("n_missing")
.reset_index()
.rename(columns={"n_missing": "n_missing_in_variable", 0: "n_variables"})
.assign(
pct_variables=lambda df: df.n_variables / df.n_variables.sum() * 100
)
.sort_values("pct_variables", ascending=False)
)
Durante value_counts, se genera una columna llamada “count” y no “0”, entonces rename no consigue renombrarla a “n_variables” y en consecuencia assign no la encuentra.
Para corregir esto desde la función reset_index se puede asignar name=“n_variables” y eso sería más universal. Aquí estaría el código modificado para que se ejecute correctamente:
def missing_variable_table(self) -> pd.DataFrame:
return (
self._obj.missing.missing_variable_summary()
.value_counts("n_missing")
.reset_index(name="n_variables")
.rename(columns={"n_missing": "n_missing_in_variable"})
.assign(
pct_variables=lambda df: df.n_variables / df.n_variables.sum() * 100
)
.sort_values("pct_variables", ascending=False)
)
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?