pruebaKPI / src /data_loader.py
enacimie's picture
Create data_loader.py
b1079b6 verified
# 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)