Python Advanced Series — Auditoría Automática

16. Reportes HTML interactivos

16. Interactive HTML Reports

Genera un perfil estadístico profundo, detectando correlaciones y alertas de calidad de datos con pocas líneas de código.

Generate a deep statistical profile, detecting correlations and data-quality alerts with only a few lines of code.

⚠️ Advertencia de ciberseguridad y producción ⚠️ Cybersecurity and production warning

Este ejercicio es solo para aprendizaje y pruebas. No ejecutes scripts contra datos reales, ambientes de producción, APIs externas, portales con login, datos sensibles, sistemas críticos o repositorios empresariales sin autorización, respaldos, pruebas previas, permisos mínimos, control de cambios y cumplimiento de los protocolos de ciberseguridad de tu organización.

This exercise is for learning and testing only. Do not run scripts against real data, production environments, external APIs, login portals, sensitive data, critical systems, or enterprise repositories without authorization, backups, prior testing, least-privilege permissions, change control, and compliance with your organization's cybersecurity protocols.

Objetivo del ejercicio

Exercise objective

Usar ydata-profiling para crear un reporte HTML navegable con resumen estadístico y alertas de calidad.

Use ydata-profiling to create a navigable HTML report with statistical summary and quality alerts.

Datos sintéticos

Synthetic data

edadsalariodepartamento
2550000IT
4072000Finance
3361000HR

Ejemplo base

Base example

from ydata_profiling import ProfileReport

profile = ProfileReport(df, title="Reporte / Report")
profile.to_file("auditoria_datos.html")

Resultado esperado

Expected result

outputstatus
auditoria_datos.htmlcreated
variables profiled3
alertsreview

Script completo

Complete script

# ==========================================================
# Python Advanced Topic 16
# Interactive HTML Data Profiling Reports
# ==========================================================

# pip install ydata-profiling pandas

import pandas as pd
from ydata_profiling import ProfileReport

df = pd.DataFrame({
    "edad": [25, 40, 33, 29, 52],
    "salario": [50000, 72000, 61000, 58000, 90000],
    "departamento": ["IT", "Finance", "HR", "IT", "Finance"]
})

profile = ProfileReport(
    df,
    title="Reporte de Auditoría de Datos / Data Audit Report",
    explorative=True
)

profile.to_file("auditoria_datos.html")
print("Interactive profiling report created: auditoria_datos.html")

Salida esperada en consola

Expected console output

Summarize dataset: 100% complete
Generate report structure: complete
Render HTML: complete
Interactive profiling report created: auditoria_datos.html

Aplicaciones reales

Real-world applications

  • Auditorías iniciales de datasets.
  • Revisión exploratoria antes de Power BI.
  • Detección de nulos, duplicados y outliers.
  • Documentación técnica automática.
  • Initial dataset audits.
  • Exploratory review before Power BI.
  • Detection of nulls, duplicates, and outliers.
  • Automatic technical documentation.

Recomendaciones

Recommendations

  • No publicar reportes con PII sin enmascarar.
  • Revisar tamaño del archivo antes de generar HTML.
  • Usarlo como diagnóstico, no como decisión final.
  • Guardar versión fechada del reporte.
  • Do not publish reports with unmasked PII.
  • Check file size before generating HTML.
  • Use it as diagnosis, not final decision.
  • Save a dated version of the report.

Valor del tópico

Topic value

Un reporte HTML interactivo acelera el diagnóstico y permite compartir hallazgos de calidad sin construir un dashboard completo.

An interactive HTML report accelerates diagnosis and allows quality findings to be shared without building a full dashboard.