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

Python Pandas合并日期时间列并转换为UTC时区求助

正确的解决方案步骤

1. 合并date和time为datetime列(指定格式更可靠)

Pandas的pd.to_datetime可以直接处理拼接后的时间字符串,而且通过format参数明确指定原始时间格式,能避免自动推断时出现错误。你的date是MM/DD/YYYY格式,time是H:M格式,所以格式字符串用%m/%d/%Y %H:%M:

df['datetime'] = pd.to_datetime(df['date'] + ' ' + df['time'], format='%m/%d/%Y %H:%M')

2. 转换为UTC时区

这里关键是要明确原始数据的时区(比如你的数据是北京时间、纽约时间还是本身就是UTC时间?):

  • 如果原始时间是某个本地时区(比如北京时间):先给datetime列添加上原始时区,再转换为UTC
    # 本地化原始时区(示例为北京时间,根据你的实际数据调整时区标识)
    df['datetime'] = df['datetime'].dt.tz_localize('Asia/Shanghai')
    # 转换为UTC时区
    df['datetime'] = df['datetime'].dt.tz_convert('UTC')
    
  • 如果原始数据本身就是UTC时间:直接给datetime列添加UTC时区标识即可
    df['datetime'] = df['datetime'].dt.tz_localize('UTC')
    

3. 删除原date和time列

用drop方法移除不需要的列:

df.drop(columns=['date', 'time'], inplace=True)

完整代码示例

import pandas as pd

# 模拟你的数据
data = {
    'date': ['1/15/2018', '1/15/2018', '1/15/2018'],
    'Seq': [1, 2, 3],
    'time': ['0:00', '0:01', '0:02']
}
df = pd.DataFrame(data)

# 合并时间列
df['datetime'] = pd.to_datetime(df['date'] + ' ' + df['time'], format='%m/%d/%Y %H:%M')

# 转换为UTC(这里假设原始时区是北京时间,按需调整)
df['datetime'] = df['datetime'].dt.tz_localize('Asia/Shanghai').dt.tz_convert('UTC')

# 删除原列
df.drop(columns=['date', 'time'], inplace=True)

print(df)

运行后你会得到带UTC时区的datetime列,格式是可读的YYYY-MM-DD HH:MM:SS+00:00,而不是时间戳。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:34:16