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

Python中使用Pandas解析日期失败问题求助

解决Pandas解析12小时制日期格式的问题

看起来你遇到的核心问题是日期格式符使用错误导致的解析失败,我来帮你理清问题并修复代码:

问题根源

你的日期字符串是'05/03/2016 11:40:00 PM',包含12小时制的小时数(11)、完整的时分秒,以及AM/PM标识。但你代码里误用了%H(这是24小时制的小时格式符),同时错误提示里的格式'%d/%m/%Y %I %p'又漏掉了时分秒的部分,这两种情况都会导致格式不匹配。

修复后的完整代码

import pandas as pd

# 读取CSV数据
df = pd.read_csv("crimes12-18.csv")

# 使用正确的格式符解析日期:%I对应12小时制小时,保留时分秒和%p标识
df['Date'] = pd.to_datetime(df['Date'], format='%d/%m/%Y %I:%M:%S %p')

# 设置时间索引
df.index = pd.DatetimeIndex(df['Date'])

# 用dt属性提取时间字段,比apply更高效简洁
df['time_hour'] = df['Date'].dt.hour
df['month'] = df['Date'].dt.month
df['year'] = df['Date'].dt.year

# 筛选排除2017年的数据
df = df[df['year'] != 2017]

df.head()

关键格式符说明

  • %I:12小时制的小时数(01-12),完美匹配你日期里的11
  • %H:24小时制的小时数(00-23),这里不适用
  • %p:AM/PM标识,对应你日期里的PM
  • %M(分钟)、%S(秒):必须和日期字符串里的40:00部分对应上

额外优化建议

如果你的CSV中存在少数格式不规范的日期,可以添加errors='coerce'参数,将无法解析的日期转为NaT(缺失时间值),避免整个解析流程失败:

df['Date'] = pd.to_datetime(df['Date'], format='%d/%m/%Y %I:%M:%S %p', errors='coerce')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:37:08