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

带引号日期与时间列合并为Timestamp失败,求解决方法

解决日期时间列合并为Timestamp的问题

我完全懂你这种明明看起来格式没问题,但转换就是报错的烦躁感——这事儿大概率是字符串里藏着多余的双引号在搞鬼,咱们一步步来搞定它:

第一步:清理字符串中的双引号

看你的报错信息:time data '"3.11.20"' does not match format '%d.%m.%y',这里的日期字符串前后都带着双引号,这才是格式不匹配的核心原因。先把这些多余的引号去掉:

# 清理日期列和时间列的双引号
df["colA"] = df["colA"].str.strip('"')
df["colB"] = df["colB"].str.strip('"')

第二步:合并并转换为Timestamp

现在字符串干净了,咱们再尝试合并转换,这里有两种稳妥的方式:

方式一:指定明确的格式

如果你确定日期是日.月.年的格式,直接指定格式参数,同时加上dayfirst=True确保解析顺序正确(避免把月和日搞混):

df["Timestamp"] = pd.to_datetime(
    df["colA"] + " " + df["colB"],
    format="%d.%m.%y %H:%M:%S",
    dayfirst=True
)

注:%d对应日、%m对应月、%y对应两位年份;%H:%M:%S对应24小时制的时间格式。

方式二:让Pandas自动推断格式

如果担心格式细节(比如一位数的日/月没有补零),可以开启自动推断,同样加上dayfirst=True保证解析顺序:

df["Timestamp"] = pd.to_datetime(
    df["colA"] + " " + df["colB"],
    dayfirst=True,
    infer_datetime_format=True
)

为什么之前的尝试失败?

  • 第一次合并时报错,是因为原始字符串带着双引号,合并后变成"3.11.20" "11:38:48",这种带嵌套引号的格式Pandas完全无法识别;
  • 单独转换日期列时报错,同样是因为双引号的存在,导致"3.11.20"和你指定的%d.%m.%y纯数字格式不匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 20:27:29