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

如何使用Pandas to_datetime转换无前导零的日期时间字符串?

解决Pandas to_datetime转换无前导零日期字符串的问题

先提个关键错误:你写的%m/%d/%y %H:%m里,最后的%m是月份的格式符,而你要解析的是分钟,得用大写的%M,这是格式不匹配的核心原因之一。

针对这类无前导零的日期时间字符串,完全不用手动补零,用这两种方法就能搞定:

1. 直接让Pandas自动解析

to_datetime默认就能识别无前导零的格式,不用指定format参数,直接调用就行:

import pandas as pd

dates = ["3/31/22 23:30", "4/1/22 0:00"]
df = pd.DataFrame({"date_str": dates})
df["datetime"] = pd.to_datetime(df["date_str"])

不管是月份、日期还是小时、分钟的无前导零情况,它都能自动处理。

2. 指定正确的格式字符串(适合追求解析速度的场景)

如果你想明确指定格式来提升解析效率,可以用支持无前导零的格式符:

  • Linux/macOS环境用%-m(无前导零月份)、%-d(无前导零日期)、%-H(无前导零小时)、%-M(无前导零分钟)
  • Windows环境把%-换成%#就行

示例代码(Linux/macOS):

df["datetime"] = pd.to_datetime(df["date_str"], format="%-m/%-d/%y %-H:%-M")

Windows环境版本:

df["datetime"] = pd.to_datetime(df["date_str"], format="%#m/%#d/%y %#H:%#M")

额外小技巧:大数据集加速解析

如果你的数据量很大,加上infer_datetime_format=True参数,Pandas会自动推断格式并加快解析速度:

df["datetime"] = pd.to_datetime(df["date_str"], infer_datetime_format=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 03:31:22