You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将日期与时间同列的CSV电力数据转换为标准格式?

电力CSV数据格式转换方案

原始数据的核心问题是日期与时间分离存储,需要将日期与对应时段的时间、功率合并,同时转换日期格式。以下是两种高效的实现方法:

方法一:使用Awk脚本(适合命令行环境)

Awk擅长处理这类需要上下文关联的文本转换,脚本逻辑如下:

BEGIN {
    FS = "\";;\""  # 设定字段分隔符为";;"
    OFS = " "       # 输出用空格分隔字段
}
# 捕获日期行并转换格式:DD/MM/YYYY → YYYY-MM-DD
/^"[0-9]{2}\/[0-9]{2}\/[0-9]{4}";;$/ {
    split(substr($0,2,10), parts, "/")
    current_date = parts[3] "-" parts[2] "-" parts[1]
    next
}
# 捕获时间+功率行,输出合并后的结果
/^"[0-9]{2}:[0-9]{2}:[0-9]{2}";;[0-9]+$/ {
    time = substr($0,2,8)
    power = substr($0, 14)
    print current_date, time, power
}

使用步骤:

  1. 将上述脚本保存为convert.awk
  2. 在终端执行命令:
awk -f convert.awk input.csv > output.txt

方法二:使用Python脚本(适合通用编程环境)

如果不熟悉Awk,Python的正则匹配可以更直观地处理:

import re

current_date = ""
output = []

# 读取原始文件
with open("input.csv", "r", encoding="utf-8") as infile:
    for line in infile:
        line = line.strip()
        if not line:
            continue
        # 匹配日期行
        date_pattern = re.match(r'"(\d{2}/\d{2}/\d{4})";;', line)
        if date_pattern:
            dd, mm, yyyy = date_pattern.group(1).split("/")
            current_date = f"{yyyy}-{mm}-{dd}"
            continue
        # 匹配时间和功率行
        tp_pattern = re.match(r'"(\d{2}:\d{2}:\d{2})";;(\d+)', line)
        if tp_pattern and current_date:
            time = tp_pattern.group(1)
            power = tp_pattern.group(2)
            output.append(f"{current_date} {time} {power}")

# 写入转换后的文件
with open("output.txt", "w", encoding="utf-8") as outfile:
    outfile.write("\n".join(output))

使用步骤:

  1. 将脚本保存为convert.py
  2. 在终端执行命令:
python convert.py

内容的提问来源于stack exchange,提问作者BenjiBoy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 17:05:14