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

如何将DataFrame中指定格式的'time'列转换为目标时间戳格式?

解决DataFrame时间列格式转换问题

要将格式为DD/MM/YYYY HH:MM的字符串列转换为YYYY-MM-DD HH:MM:SS+01:00格式的带时区时间戳,可以通过以下步骤实现:

  • 步骤1:解析原始时间字符串
    使用pd.to_datetime()指定输入格式,将字符串列转换为pandas的datetime对象,避免自动推断出错:

    import pandas as pd
    
    # 示例DataFrame
    df = pd.DataFrame({'time': ['01/05/2024 14:30', '15/12/2023 09:15']})
    
    # 解析原始时间列
    df['time'] = pd.to_datetime(df['time'], format='%d/%m/%Y %H:%M')
    
  • 步骤2:添加UTC+1时区信息
    给解析后的naive datetime对象添加+01:00时区偏移,这里可以用Etc/GMT-1直接对应UTC+1时区:

    df['time'] = df['time'].dt.tz_localize('Etc/GMT-1')
    

    如果需要考虑夏令时,可以使用具体时区(如Europe/Paris),但需确保安装了pytz或zoneinfo库。

  • 步骤3:格式化为目标字符串格式
    两种方式实现目标格式:

    1. 动态适配时区偏移并调整格式:
    # 利用%z获取时区偏移,将+0100转换为+01:00
    df['time'] = df['time'].dt.strftime('%Y-%m-%d %H:%M:%S%z').str.replace(r'(\+01)00', r'\1:00')
    
    1. 直接拼接固定时区后缀(适合不需要动态时区的场景):
    df['time'] = df['time'].dt.strftime('%Y-%m-%d %H:%M:%S') + '+01:00'
    

最终处理后的DataFrame输出示例:

time
0  2024-05-01 14:30:00+01:00
1  2023-12-15 09:15:00+01:00

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 11:27:09