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

Pandas中将带AM/PM、UTC的无补零日期字符串转为datetime格式

报错原因

你之前传入的格式参数format="%m/%d/%Y %I:%M %p"没有覆盖原始字符串末尾的 UTC固定后缀,同时没有提前清理字符串首尾的冗余空格,导致格式匹配失败。

可直接运行的解决代码
import pandas as pd

# 此处为模拟原始数据,实际使用时替换为你从CSV读取到的对应日期列即可
raw_data = [
    "10/12/2021 10:25 AM UTC   ",
    "9/28/2021 8:51 AM UTC   ",
    "7/27/2021 9:45 AM UTC   ",
    "2/2/2022 7:10 PM UTC "
]
s = pd.Series(raw_data)

# 1. 先清理首尾空格,再补全格式参数解析为datetime类型
parsed_dt = pd.to_datetime(
    s.str.strip(),
    format="%m/%d/%Y %I:%M %p %Z"
)

# 2. 格式化为要求的零填充24小时制字符串,自动移除UTC标识
result = parsed_dt.dt.strftime("%m/%d/%Y %H:%M")

执行后result的输出完全匹配你的预期:

0    10/12/2021 10:25
1    09/28/2021 08:51
2    07/27/2021 09:45
3    02/02/2022 19:10
dtype: object
关键说明
  • 解析前调用.str.strip()是为了清理原始数据里末尾参差不齐的冗余空格,避免空格干扰格式匹配
  • 格式串末尾新增的%Z专门用于匹配字符串末尾的UTC时区标识,补全后即可解决匹配报错问题
  • 输出格式化用的%m(两位月份)、%d(两位日期)、%H(24小时制两位小时)会自动给不足两位的值补前导零,%M(两位分钟)默认带零填充,完全符合你的格式要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 12:51:19