data_processor
Descripción General
Módulo de procesamiento, validación y limpieza de datos de crédito hipotecario. Incluye validaciones automáticas, detección de outliers y generación de reportes de calidad.
Clases Principales
DataProcessor
Métodos Principales
load_data
Carga datos desde archivo o upload de Streamlit.
- Parameters:
file_path(str, optional): Ruta al archivouploaded_file(optional): Archivo subido en Streamlit
- Returns:
DataFrame cargado o None si hay error
- Formatos soportados:
CSV (.csv)
Excel (.xlsx, .xls)
Parquet (.parquet)
validate_data
Valida la calidad y consistencia de los datos.
- Parameters:
df(DataFrame): DataFrame a validar
- Returns:
Diccionario con reporte de validación
Validaciones realizadas:
Verificación de columnas requeridas
Análisis de valores faltantes
Verificación de rangos lógicos
Detección de inconsistencias
Identificación de duplicados
Detección de outliers extremos
clean_data
Limpia y procesa los datos según configuración.
- Parameters:
df(DataFrame): DataFrame a procesarremove_duplicates(bool): Si eliminar duplicados (default: True)handle_missing(str): Estrategia para valores faltantes (“drop”, “impute”, “keep”)handle_outliers(str): Estrategia para outliers (“remove”, “cap”, “keep”)normalize_numeric(bool): Si normalizar variables numéricas (default: False)
- Returns:
DataFrame procesado
- Estrategias de imputación:
Numéricas: Mediana
Categóricas: Moda
create_quality_report_visualizations
Crea visualizaciones del reporte de calidad.
- Parameters:
df(DataFrame): DataFrame a analizar
- Returns:
Diccionario con figuras de Plotly
- Visualizaciones generadas:
Heatmap de valores faltantes
Gráfico de barras de valores faltantes
Distribución de tipos de datos
Funciones de Renderizado
render_data_loader
Renderiza el módulo de carga de datos en Streamlit.
- Funcionalidades:
Carga de archivos (CSV, Excel, Parquet)
Vista previa de datos
Validación automática de calidad
Procesamiento interactivo
Descarga de datos procesados
render_data_processor_module
Función principal para renderizar el módulo completo de procesamiento.
Rangos de Validación
El procesador valida los siguientes rangos:
Variable |
Mínimo |
Máximo |
|---|---|---|
edad |
18 |
80 |
salario_mensual |
1,000,000 |
50,000,000 |
puntaje_datacredito |
150 |
950 |
valor_inmueble |
20,000,000 |
2,000,000,000 |
tasa_interes_anual |
5.0 |
25.0 |
plazo_credito |
5 |
30 |
dti |
0 |
60 |
ltv |
0 |
100 |
Estructura del Reporte de Validación
El reporte de validación incluye:
{
'timestamp': '2024-01-01T12:00:00',
'total_rows': 10000,
'total_columns': 45,
'warnings': [
'Columnas con >20% valores faltantes: [...]',
'Outliers detectados en: [...]'
],
'errors': [
'Columnas faltantes: [...]',
'Inconsistencias: monto_credito > valor_inmueble'
],
'suggestions': [
'✅ Todas las columnas requeridas presentes'
]
}
Ejemplo Completo
from src.data_processor import DataProcessor
import pandas as pd
# Inicializar procesador
processor = DataProcessor()
# Cargar datos
df = pd.read_csv("datos_credito.csv")
# Validar
validation_report = processor.validate_data(df)
print(f"Errores: {len(validation_report['errors'])}")
print(f"Advertencias: {len(validation_report['warnings'])}")
# Limpiar
df_clean = processor.clean_data(
df,
remove_duplicates=True,
handle_missing='impute',
handle_outliers='cap',
normalize_numeric=False
)
# Crear visualizaciones
figures = processor.create_quality_report_visualizations(df_clean)
# Guardar datos limpios
df_clean.to_csv("datos_procesados.csv", index=False)
print(f"Procesamiento completado: {len(df_clean)} registros")
Ver también
generar_datos - Generación de datos sintéticos
univariate_analysis - Análisis univariado
feature_engineering - Ingeniería de características