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

如何用Python不借助pandas将整数日期列拆分为年月日及季度列

Python纯标准库实现日期拆分方案

实现逻辑

整数格式的日期遵循YYYYMMDD的8位结构,直接通过字符串切片即可拆分年、月、日,季度可通过公式(月份-1)//3 + 1计算得到,全程仅使用Python自带的csv模块处理文件,无需安装pandas等第三方依赖。

可直接运行代码

import csv

# 请根据实际情况修改输入、输出文件路径
INPUT_PATH = "your_input.csv"
OUTPUT_PATH = "your_output.csv"

if __name__ == "__main__":
    with open(INPUT_PATH, "r", encoding="utf-8") as in_f, \
         open(OUTPUT_PATH, "w", encoding="utf-8", newline="") as out_f:
        # 读取带表头的输入文件
        csv_reader = csv.DictReader(in_f)
        # 定义输出表头
        output_header = ["date", "day", "month", "year", "quarter"]
        csv_writer = csv.DictWriter(out_f, fieldnames=output_header)
        csv_writer.writeheader()

        for row in csv_reader:
            # 统一转为8位字符串,处理可能的前导零丢失问题
            date_val = str(int(row["date"])).zfill(8)
            year = int(date_val[:4])
            month = int(date_val[4:6])
            day = int(date_val[6:])
            quarter = (month - 1) // 3 + 1
            # 写入处理后的行
            csv_writer.writerow({
                "date": row["date"],
                "day": day,
                "month": month,
                "year": year,
                "quarter": quarter
            })

特殊场景适配

如果你的原始CSV没有表头,仅包含单列日期值,可将读写逻辑替换为普通csv读写:

# 无表头场景的读写逻辑替换
csv_reader = csv.reader(in_f)
csv_writer = csv.writer(out_f)
# 写入自定义表头
csv_writer.writerow(["date", "day", "month", "year", "quarter"])
for row in csv_reader:
    date_val = str(int(row[0])).zfill(8)
    year = int(date_val[:4])
    month = int(date_val[4:6])
    day = int(date_val[6:])
    quarter = (month - 1) // 3 + 1
    csv_writer.writerow([row[0], day, month, year, quarter])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 15:54:04