Skip to main content

Convierte cualquier DataFrame de pandas en un análisis en lenguaje natural

Project description

datanarrator 📊

PyPI version Python 3.9+ License: MIT Tests

Open In Colab

datanarrator convierte cualquier DataFrame de pandas en un análisis en lenguaje natural. En lugar de leer tablas de números, obtienes texto interpretado con hallazgos, alertas y recomendaciones automáticas y reportes HTML interactivos.


Instalación

pip install datanarrator

Uso rápido

import pandas as pd
from datanarrator import Narrator

df = pd.read_csv("datos.csv")
n = Narrator(df, lang="es")

print(n.describe())

Métodos disponibles

Método Descripción
describe() Análisis completo en lenguaje natural
executive_summary() Resumen ejecutivo de 2-3 oraciones
alerts_only() Solo alertas y recomendaciones
quality_score() Score de calidad del dataset de 0 a 100 con grado A–F
narrative() Análisis narrativo interpretativo en párrafos
suggest() Sugiere modelos ML y pasos de preprocesamiento
compare(df2) Compara dos datasets y detecta data drift
export(filepath) Exporta a .txt, .md o reporte .html interactivo

Ejemplos de uso

Análisis completo

n = Narrator(df, lang="es")
print(n.describe())
--- Resumen general ---
El dataset contiene 891 registros con 12 columnas: 7 numéricas, 5 categóricas.
Valores nulos: 866 (8.1% del total).
--- Columnas numéricas ---
Age: media=29.7, mediana=28.0, std=14.53. Se detectaron 11 posibles outliers.
--- Correlaciones relevantes ---
Pclass ↔ Fare: correlación moderada negativa (-0.55)
--- Alertas y recomendaciones ---
⚠  'Cabin' tiene 77.1% de valores nulos.
→ Considera imputar o eliminar esta columna.

Sugerencias de modelado

print(n.suggest())
--- Sugerencias para modelado ---
Tipo de problema detectado: clasificacion binaria
Variable objetivo probable: Survived
Modelos recomendados:
→ Logistic Regression — buen baseline para clasificacion
→ Random Forest — robusto con variables mixtas
→ XGBoost — recomendado si priorizas accuracy
Preprocesamiento recomendado:
→ Imputar nulos en: Age
→ Encodear variables categoricas: Name, Sex, Ticket, Cabin, Embarked

Comparar dos datasets

n = Narrator(df_train, lang="es")
print(n.compare(df_produccion))
--- Comparación de datasets ---
El segundo dataset tiene 267 registros menos.
'Age': media subió de 29.7 a 44.34 (+49.3%).
⚠  Posible data drift en: Age.
→ Dispersión cambió más del 30%. Revisa antes de producción.

Score de calidad

resultado = n.quality_score()
print(resultado["resumen"])
print(resultado["penalizaciones"])
El dataset obtuvo un score de 72/100 (grado C).
{'nulos': 12.15, 'duplicados': 0, 'constantes': 0, 'cardinalidad': 0, 'cols_nulas': 10}

Análisis narrativo

print(n.narrative())
Con 891 registros y 12 columnas, el dataset es de tamaño moderado — adecuado
para la mayoría de algoritmos de machine learning. Contiene 7 variables numéricas
y 5 categóricas. El problema de calidad más crítico es la columna "Cabin", que
concentra el 77.1% de valores nulos...

Exportar reporte HTML interactivo

n.export("reporte_titanic.html")  # reporte visual con gráficas
n.export("reporte_titanic.txt")   # texto plano

El reporte HTML incluye navegación por secciones, semáforo de salud por columna, histogramas, gráficas interactivas con Chart.js, score de calidad y sugerencias de ML.

Soporte multilenguaje

n_es = Narrator(df, lang="es")  # Español
n_en = Narrator(df, lang="en")  # English

Correr con Docker

# Clonar el repositorio
git clone https://github.com/ikernavarro4/data-narrator.git
cd data-narrator

# Construir y correr el contenedor
docker compose up --build

El contenedor instala la librería desde PyPI y corre automáticamente el script de ejemplo con el dataset del Titanic.


Correr los tests

pip install pytest
pytest tests/ -v

Repositorio y links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

datanarrator-0.1.5.tar.gz (31.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

datanarrator-0.1.5-py3-none-any.whl (28.0 kB view details)

Uploaded Python 3

File details

Details for the file datanarrator-0.1.5.tar.gz.

File metadata

  • Download URL: datanarrator-0.1.5.tar.gz
  • Upload date:
  • Size: 31.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for datanarrator-0.1.5.tar.gz
Algorithm Hash digest
SHA256 e6aedf02c3d15df0f4a34d04fc3f02638b4c56e470730eed25bb2cb7f332184e
MD5 91475c082a069e9c80cd31c124c37014
BLAKE2b-256 21ed7a42dcea45ccee554733114c121047f7ae75bfba71a2cf8aeb7197b7a0ff

See more details on using hashes here.

File details

Details for the file datanarrator-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: datanarrator-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 28.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for datanarrator-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 af634d00cda872f8be7f7e169f20e7765a044742b7f43928fc6480e02968b566
MD5 9d2c341e10d050956c01fb8543a16cfd
BLAKE2b-256 4a55d832b0a216299692ccfff81ae05aa0d832a2be59e48d95a79b3c9dbc0ce3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page