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

使用Pandas处理Excel日期列:提取年份分组遇格式匹配错误求解

问题修复方案

错误原因

你写的format='%y/%m/%d %I:%M%p'和实际数据完全不匹配:

  • %y是两位年份格式,但你的数据是四位年份(比如2022),得用%Y
  • 你的数据只有日期(年/月/日),没有时分秒和AM/PM标识,格式串里的%I:%M%p完全多余,导致匹配失败

修复后的代码

方式1:不修改索引,直接提取年份分组

这种方式更直观,也方便后续查看年份列:

# 先把日期列转成datetime类型,提取年份到新列
df['年份'] = pd.to_datetime(df[18], format='%Y/%m/%d').dt.year
# 按年份分组
grouped_df = df.groupby('年份')

方式2:将日期设为索引后分组

如果一定要用索引分组,修正format参数即可:

# 修正format为匹配数据的格式:四位年/两位月/两位日
df.index = pd.to_datetime(df[18], format='%Y/%m/%d')
# 按索引的年份分组
grouped_df = df.groupby(by=[df.index.year])

额外提示

如果你的日期列里有部分数据格式不统一,还可以加上errors='coerce'参数,把无法转换的日期设为NaT,避免程序崩溃:

df['年份'] = pd.to_datetime(df[18], format='%Y/%m/%d', errors='coerce').dt.year

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 08:01:00