编辑代码

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  # 每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)

# 创建DataFrame
columns = ["设备编号", "累计值", "当前监测值", "监测时间"]
df = pd.DataFrame(data, columns=columns)

# 保存为Excel文件
df.to_excel("地铁沉降模拟数据.xlsx", index=False)

print("Excel文件已生成!")