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

如何用Pandas合并带时区DATE与TIME列生成无时区MERGEDATE列?

解决Pandas合并带时区DATE与int类型TIME列的问题

以下是分步实现方案:

  • 第一步:转换DATE列并移除时区
    先把object类型的DATE列转为带时区的datetime,再移除时区信息:

    import pandas as pd
    df = pd.read_csv('Automobile.csv')
    # 转换为datetime并移除时区
    df['DATE'] = pd.to_datetime(df['DATE']).dt.tz_localize(None)
    
  • 第二步:处理int类型的TIME列
    将int64类型的时间值(如1500、520)转换为标准的HH:MM格式字符串:

    # 补全为4位字符串,再分割为小时和分钟
    df['TIME_FORMATTED'] = df['TIME'].astype(str).str.zfill(4).str.replace(r'(\d{2})(\d{2})', r'\1:\2', regex=True)
    

    这里str.zfill(4)会把520补成0520,正则替换后变成05:20,1500则变成15:00。

  • 第三步:合并生成MERGEDATE列
    直接将处理后的DATE(datetime类型)与TIME_FORMATTED转为时间增量后相加,得到无时区的合并datetime列:

    df['MERGEDATE'] = df['DATE'] + pd.to_timedelta(df['TIME_FORMATTED'])
    

    也可以用字符串拼接后转datetime的方式,效率稍低但直观:

    df['MERGEDATE'] = pd.to_datetime(df['DATE'].astype(str) + ' ' + df['TIME_FORMATTED'])
    
  • 可选:清理中间列
    如果不需要保留TIME_FORMATTED列,可以删除:

    df.drop('TIME_FORMATTED', axis=1, inplace=True)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 03:37:34