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

如何高效将CSV中DAY、YEAR、MONTH列合并为datetime64[ns]类型列?

更高效的datetime合并方法

你的代码能实现需求,但通过字符串拼接再转datetime的方式存在不必要的性能开销,尤其是数据量较大时。Pandas提供了直接基于数值列生成datetime的更优方案:

推荐方案:直接用pd.to_datetime处理数值列

不需要将整数列转为字符串,pd.to_datetime可以直接接收包含year、month、day的DataFrame,自动完成合并:

# 直接在第0列插入合并后的DATE列
df.insert(0, "DATE", pd.to_datetime(df[["YEAR", "MONTH", "DAY"]]))

原理说明:

Pandas内部会直接处理整数类型的年、月、日数值,跳过字符串转换的中间步骤,不仅代码更简洁,还能大幅提升处理速度、降低内存占用。

备选方案:自定义列映射

如果你的列名不是标准的YEAR/MONTH/DAY,可以通过字典指定对应关系:

df["DATE"] = pd.to_datetime({
    "year": df["YEAR"],
    "month": df["MONTH"],
    "day": df["DAY"]
})
# 若要放在第0列,执行insert:
df.insert(0, "DATE", df.pop("DATE"))

对比原代码的优势

  • 避免了整数→字符串→datetime的转换链条,减少计算开销
  • 代码行数更少,逻辑更直观
  • 无需担心字符串拼接可能出现的格式异常(比如个位数日期/月份的补零问题,Pandas会自动处理)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 19:35:28