Convierte cualquier DataFrame de pandas en un análisis en lenguaje natural
Project description
datanarrator 📊
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e6aedf02c3d15df0f4a34d04fc3f02638b4c56e470730eed25bb2cb7f332184e
|
|
| MD5 |
91475c082a069e9c80cd31c124c37014
|
|
| BLAKE2b-256 |
21ed7a42dcea45ccee554733114c121047f7ae75bfba71a2cf8aeb7197b7a0ff
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
af634d00cda872f8be7f7e169f20e7765a044742b7f43928fc6480e02968b566
|
|
| MD5 |
9d2c341e10d050956c01fb8543a16cfd
|
|
| BLAKE2b-256 |
4a55d832b0a216299692ccfff81ae05aa0d832a2be59e48d95a79b3c9dbc0ce3
|