DataMatrix

Analisis exploratorio automatico (estilo ydata-profiling) con reporte HTML interactivo: filtra, visualiza y explora datos en el navegador.

Descripcion general

DataMatrix toma un DataFrame de pandas y genera un reporte HTML con pestanas:

  • Overview — KPIs, alertas y fortalezas del dataset
  • Variables — perfil por columna con busqueda y graficos lazy
  • Explore — filtrado interactivo, graficos en vivo y descarga CSV
  • Correlations — pares numericos con mayor correlacion
  • Bibliometrics — autores, journals, keywords (si aplica)
  • Sample — muestra paginada del dataset

Instalacion

pip install viewx

Inicio rapido

Python
from viewx import DataMatrix
from viewx.datasets import load_iris

df = load_iris()

dm = DataMatrix(df)
dm.analyze()
print(dm.summary(detailed=True))
print("Alerts:", dm.alerts())
print("Highlights:", dm.highlights())
dm.generate_report("mi_reporte.html", title="Analisis Iris", theme="dark")

Constructor

DataMatrix(df: pd.DataFrame)
Inicializa una instancia de DataMatrix con un DataFrame de pandas. Crea copias internas del DataFrame original y prepara los contenedores para estadisticas y alertas.
df pd.DataFrame - DataFrame a analizar
ⓘ Nota

DataMatrix mantiene una copia del DataFrame original (self.original_df) y una copia de trabajo (self.df) para preservar los datos originales durante la limpieza.

analyze()

analyze() → DataMatrix
Ejecuta el perfilado completo via AnalyzerEngine: tipos de columna, correlaciones, bibliometria y alertas. Retorna self para encadenamiento.

summary() / alerts() / highlights()

summary(detailed=False) → dict
Resumen del dataset. Con detailed=True incluye alertas, highlights, listas de columnas y correlaciones.
alerts() → List[str]
Advertencias de calidad: nulos, outliers, columnas constantes, duplicados, skewness.
highlights() → List[str]
Aspectos positivos del dataset: baja tasa de nulos, sin duplicados, correlaciones fuertes, cardinalidad usable.

clean_data()

clean_data(drop_duplicates=True, fill_na=False, na_strategy=None)
Limpia el DataFrame eliminando duplicados e imputando nulos. na_strategy permite reglas por columna: mean, median, mode, auto, drop.
drop_duplicates bool, default=True
fill_na bool | str, default=False — True, "ffill" o "bfill"
na_strategy dict, optional — estrategia por columna
Python
dm = DataMatrix(df)

# Solo eliminar duplicados
dm.clean_data(drop_duplicates=True, fill_na=False)

# Eliminar duplicados e imputar nulos
dm.clean_data(drop_duplicates=True, fill_na=True)

filter_rows() / select_columns() / reset_data()

filter_rows(query: str) → DataMatrix
Filtra filas con una expresion pandas query(). Invalida el analisis previo.
select_columns(columns: List[str]) → DataMatrix
Conserva solo las columnas indicadas.
reset_data() → DataMatrix
Restaura el DataFrame original antes de limpieza o filtros.

generate_report()

generate_report(output_path, title, theme="dark", show=True, explorer_max_rows=5000)
Genera el reporte HTML completo y opcionalmente lo abre en el navegador.
output_path str
title str
theme str — "dark" o "light"
show bool
render_html(title, theme="dark", explorer_max_rows=5000) → str
Retorna el HTML como string sin escribir archivo.
Python
dm = DataMatrix(df)
path = dm.generate_report(
    output_path="analisis_ventas.html",
    title="Reporte de Ventas Q4 2024"
)
print(f"Reporte generado: {path}")

Explore tab (interactivo)

La pestana Explore embebe un explorador client-side con:

  • Filtros por columna (numericos, categoricos, fechas)
  • Constructor de graficos en vivo (bar, scatter, line, pie)
  • Tabla paginada con datos filtrados
  • Descarga CSV del subset activo

Los datos se serializan en JSON (hasta explorer_max_rows filas, default 5000).