Create data_loader.py
Browse files- src/data_loader.py +44 -0
src/data_loader.py
ADDED
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# data_loader.py
|
2 |
+
|
3 |
+
import pandas as pd
|
4 |
+
import numpy as np
|
5 |
+
|
6 |
+
def simulate_transport_data():
|
7 |
+
"""
|
8 |
+
Simula datos de transporte urbano para varios autobuses durante una semana.
|
9 |
+
|
10 |
+
Returns:
|
11 |
+
pd.DataFrame: DataFrame con datos simulados.
|
12 |
+
"""
|
13 |
+
# Definir identificadores de autobuses
|
14 |
+
buses = ['Bus_01', 'Bus_02', 'Bus_03', 'Bus_04']
|
15 |
+
|
16 |
+
# Generar rango de fechas para una semana (7 d铆as)
|
17 |
+
days = pd.date_range(start="2025-04-01", periods=7, freq='D')
|
18 |
+
|
19 |
+
# Lista para almacenar los datos simulados
|
20 |
+
data = []
|
21 |
+
|
22 |
+
# Simular datos para cada autob煤s y d铆a
|
23 |
+
for bus in buses:
|
24 |
+
for day in days:
|
25 |
+
# Datos aleatorios simulados
|
26 |
+
punctuality = np.random.uniform(85, 99) # Puntualidad entre 85% y 99%
|
27 |
+
occupancy = np.random.uniform(30, 100) # Ocupaci贸n entre 30% y 100%
|
28 |
+
km = np.random.uniform(150, 300) # Kil贸metros recorridos entre 150 y 300
|
29 |
+
fuel_eff = np.random.uniform(20, 35) # Eficiencia de combustible entre 20 y 35 L/100km
|
30 |
+
coverage = np.random.choice([80, 90, 100]) # Cobertura de ruta (80%, 90% o 100%)
|
31 |
+
|
32 |
+
# Agregar datos al DataFrame
|
33 |
+
data.append({
|
34 |
+
"bus_id": bus,
|
35 |
+
"date": day,
|
36 |
+
"punctuality": round(punctuality, 2), # Redondear a 2 decimales
|
37 |
+
"occupancy": round(occupancy, 2), # Redondear a 2 decimales
|
38 |
+
"km": round(km, 1), # Redondear a 1 decimal
|
39 |
+
"fuel_eff": round(fuel_eff, 2), # Redondear a 2 decimales
|
40 |
+
"route_coverage": coverage
|
41 |
+
})
|
42 |
+
|
43 |
+
# Convertir la lista de diccionarios en un DataFrame
|
44 |
+
return pd.DataFrame(data)
|