File size: 1,752 Bytes
b1079b6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# 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)