Traducción del artículo: Exploratory Data Analysis with Pandas Profiling escrito por Albert Sanchez Lafuente el 9 de Febrero del 2020.
La creación de un Pandas Profiling es un módulo de Python de código abierto con el que podemos hacer rápidamente un análisis de datos exploratorio con solo unas pocas líneas de código. Además, si esto no es suficiente para convencernos de utilizar esta herramienta, también genera informes interactivos en formato web que se pueden presentar a cualquier persona, aunque no sepa programación. En resumen, lo que hace el perfil de pandas es ahorrarnos todo el trabajo de visualizar y comprender la distribución de cada variable. Genera un informe con toda la información fácilmente disponible.
Una imagen vale mas que mil palabras
Para mostrarle claramente cómo funciona, este es un ejemplo de un informe generado por el perfil de pandas:
Uno de los puntos fuertes del informe generado son las advertencias que aparecen al principio. Nos dice las variables que contienen valores de NaN, variables con muchos ceros, variables categóricas con alta cardinalidad, etc.
Cómo utilizar la creación de perfiles de pandas
El primer paso es instalarlo con este comando:
< pip install pandas-profiling >
Luego generamos el informe usando estos comandos:
<from pandas_profiling import ProfileReport
prof = ProfileReport(df)
prof.to_file(output_file='output.html')>
Aquí estamos, ha sido así de sencillo. Podemos ver el informe generado en el archivo output.html.
Desventaja del perfil de pandas
La principal desventaja de la creación de perfiles de pandas es su uso con grandes conjuntos de datos. Con el aumento en el tamaño de los datos el tiempo para generar el informe también aumenta mucho.
Una forma de resolver este problema es generar el informe a partir de solo una parte de todos los datos que tenemos. Es importante asegurarse de que los datos seleccionados para generar el informe sean representativos de todos los datos que tenemos, por ejemplo, podría darse el caso de que las primeras X filas de datos contengan solo datos de una categoría. En este ejemplo, nos gustaría aleatorizar el orden de los datos y seleccionar una muestra representativa.
Un ejemplo con código:
<from pandas_profiling import ProfileReport
#We only use the first 10000 data pointsprof = ProfileReport(df.sample(n=10000))
prof.to_file(output_file='output.html')>
Otra alternativa es utilizar el modo mínimo que se introdujo en la versión 2.4 de la creación de perfiles de pandas. Puede comprobar qué versión ha instalado con este comando:
<pandas_profiling.version.__version__>
Con el modo mínimo, se generará un informe simplificado con menos información que el completo, pero se puede generar con relativa rapidez para un gran conjunto de datos. Este es el código que se utilizará:
<profile = ProfileReport(df, minimal=True)profile.to_file(output_file="output_min.html")>
Bastante bueno el tutorial, ya la he usado un par de veces, y lo bueno es que puedes modificar lo que te va a dar de resultado y no solo obtener el reporte completo.