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

如何在Pandas中将GMT格式Timestamp转换为UTC时间戳?

问题

我有一个Pandas DataFrame,其中TimeStamp列是GMT时区的DateTime格式,需要添加一列存储每个TimeStamp对应的UTC时间戳。

尝试的代码及报错

我编写了以下代码,但触发了类型错误:

import pandas as pd
import datetime as dt

df = pd.DataFrame({'ID': ['1', '2', '3'],
                   'TimeStamp': [2022-12-19 22:56:24, 2022-12-19 22:57:46, 2022-12-19 22:59:08]})
df['x'] = dt.datetime(df['TimeStamp']).timestamp()

报错信息:

TypeError: cannot convert the series to <class 'int'>

解决方案

1. 修正DataFrame的创建方式

原代码中TimeStamp列的时间写法不符合Python语法,需要将时间以字符串形式传入,再转换为带GMT时区的datetime类型:

import pandas as pd

df = pd.DataFrame({
    'ID': ['1', '2', '3'],
    'TimeStamp': ['2022-12-19 22:56:24', '2022-12-19 22:57:46', '2022-12-19 22:59:08']
})
# 转换为datetime并指定GMT时区
df['TimeStamp'] = pd.to_datetime(df['TimeStamp'], utc=True).tz_convert('GMT')

2. 生成UTC时间戳

datetime.datetime()无法直接处理Pandas Series,需使用Pandas内置的dt访问器调用timestamp()方法,直接生成秒级UTC时间戳:

df['UTC'] = df['TimeStamp'].dt.timestamp().astype(int)

也可以通过将datetime类型转换为纳秒级整数后除以10^9的方式获取秒级时间戳:

df['UTC'] = df['TimeStamp'].astype('int64') // 10**9

最终输出

IDTimeStampUTC
12022-12-19 22:56:241671490584
22022-12-19 22:57:461671490666
32022-12-19 22:59:081671490748

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 15:55:19