# data_loader.py import pandas as pd import numpy as np def simulate_transport_data(): """ Simula datos de transporte urbano para varios autobuses durante una semana. Returns: pd.DataFrame: DataFrame con datos simulados. """ # Definir identificadores de autobuses buses = ['Bus_01', 'Bus_02', 'Bus_03', 'Bus_04'] # Generar rango de fechas para una semana (7 días) days = pd.date_range(start="2025-04-01", periods=7, freq='D') # Lista para almacenar los datos simulados data = [] # Simular datos para cada autobús y día for bus in buses: for day in days: # Datos aleatorios simulados punctuality = np.random.uniform(85, 99) # Puntualidad entre 85% y 99% occupancy = np.random.uniform(30, 100) # Ocupación entre 30% y 100% km = np.random.uniform(150, 300) # Kilómetros recorridos entre 150 y 300 fuel_eff = np.random.uniform(20, 35) # Eficiencia de combustible entre 20 y 35 L/100km coverage = np.random.choice([80, 90, 100]) # Cobertura de ruta (80%, 90% o 100%) # Agregar datos al DataFrame data.append({ "bus_id": bus, "date": day, "punctuality": round(punctuality, 2), # Redondear a 2 decimales "occupancy": round(occupancy, 2), # Redondear a 2 decimales "km": round(km, 1), # Redondear a 1 decimal "fuel_eff": round(fuel_eff, 2), # Redondear a 2 decimales "route_coverage": coverage }) # Convertir la lista de diccionarios en un DataFrame return pd.DataFrame(data)