import pandas as pd
import random
from datetime import datetime, timedelta
random.seed(42)
def generate_equipment_id(base_id):
return f"JCJ{base_id:02d}-27"
def generate_time(start_time, interval_minutes):
return start_time + timedelta(minutes=interval_minutes)
start_time = datetime(2023, 1, 1, 0, 0, 0)
time_interval = 30
num_equipment = 12
num_rows = 500
data = []
current_equipment = 0
current_time = start_time
current_cumulative = {i: 0 for i in range(num_equipment)}
for _ in range(num_rows):
equipment_id = generate_equipment_id(current_equipment + 1)
current_value = random.randint(-6, 9)
current_cumulative[current_equipment] += current_value
cumulative_value = current_cumulative[current_equipment]
time_str = current_time.strftime("%Y-%m-%d %H:%M:%S")
data.append([equipment_id, cumulative_value, current_value, time_str])
current_equipment = (current_equipment + 1) % num_equipment
current_time += timedelta(minutes=time_interval)
columns = ["设备编号", "累计值", "当前监测值", "监测时间"]
df = pd.DataFrame(data, columns=columns)
df.to_excel("地铁沉降模拟数据.xlsx", index=False)
print("Excel文件已生成!")