如何将pandas含PDT/PST时区的日期时间列转换为UTC时区
解决方案
核心思路
- 直接用pandas内置的
to_datetime()方法自动识别字符串中的PDT/PST时区标记,生成带时区的datetime对象 - 调用
tz_convert('UTC')统一转换为UTC时区 - 若不需要保留时区信息,可追加
tz_localize(None)输出无时区的UTC时间
完整代码示例
import pandas as pd # 构造示例数据 df = pd.DataFrame({ 'PDT/PST': [ '2021-10-29 00:18:38 PDT', '2021-10-29 01:08:19 PDT', '2021-11-08 19:43:58 PST', '2021-11-08 19:56:01 PST' ] }) # 核心转换逻辑,一行代码完成 df['UTC时间'] = pd.to_datetime(df['PDT/PST']).dt.tz_convert('UTC').dt.tz_localize(None) # 如果需要对齐你示例中截断到分钟的效果,可追加.floor('min'): # df['UTC时间'] = pd.to_datetime(df['PDT/PST']).dt.tz_convert('UTC').dt.floor('min').dt.tz_localize(None) print(df)
输出结果
PDT/PST UTC时间0 2021-10-29 00:18:38 PDT 2021-10-29 07:18:38
1 2021-10-29 01:08:19 PDT 2021-10-29 08:08:19
2 2021-11-08 19:43:58 PST 2021-11-09 03:43:58
3 2021-11-08 19:56:01 PST 2021-11-09 03:56:01
注意事项
- 如果解析时报错,可显式指定格式参数提升兼容性:
pd.to_datetime(df['PDT/PST'], format='%Y-%m-%d %H:%M:%S %Z') - 若需要保留UTC时区标记,去掉
.dt.tz_localize(None)即可
内容的提问来源于stack exchange,提问作者Salvin D'souza
相关产品推荐
相关产品推荐

