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

如何用Python将CSV文件中的YEAR、MO、DY、HR列合并为日期时间列

用Python合并CSV中的日期时间列

方法一:使用Pandas(推荐,适合批量数据处理)

Pandas是处理CSV数据的常用工具,能快速完成列合并并转换为标准日期时间格式:

import pandas as pd

# 读取目标CSV文件
df = pd.read_csv("your_input.csv")

# 合并YEAR/MO/DY/HR列,生成指定格式的DATE/TIME列
# 方式1:通过字符串拼接后转换
df["DATE/TIME"] = pd.to_datetime(
    df[["YEAR", "MO", "DY", "HR"]].astype(str).agg("-".join, axis=1) + ":00:00",
    format="%Y-%m-%d-%H:%M:%S"
)

# 方式2:直接传入日期时间分量列,自动识别格式(更简洁)
df["DATE/TIME"] = pd.to_datetime(df.assign(MI=0, SS=0)[["YEAR", "MO", "DY", "HR", "MI", "SS"]])

# 将结果保存到新CSV
df.to_csv("your_output.csv", index=False)

方法二:使用Python标准库(无需额外安装依赖)

如果不想安装第三方库,用内置的csv模块也能实现:

import csv

with open("your_input.csv", "r", newline="") as in_file, open("your_output.csv", "w", newline="") as out_file:
    reader = csv.DictReader(in_file)
    # 构造新表头,添加DATE/TIME列
    fieldnames = reader.fieldnames + ["DATE/TIME"]
    writer = csv.DictWriter(out_file, fieldnames=fieldnames)
    writer.writeheader()

    for row in reader:
        # 将月份、日期、小时补零为两位数
        month = row["MO"].zfill(2)
        day = row["DY"].zfill(2)
        hour = row["HR"].zfill(2)
        # 拼接成目标格式
        row["DATE/TIME"] = f"{row['YEAR']}-{month}-{day} {hour}:00:00"
        writer.writerow(row)

两种方法都能将示例中的2011 | 1 | 1 | 6转换为2011-01-01 06:00:00格式的日期时间列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 14:35:45