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

如何在Pandas中将非标准日期格式(如2000M01)转换为目标格式?

处理非标准日期格式的转换方案

没问题,这种2000M01这类非标准日期格式的转换,在pandas里有几种非常实用的方法,我给你梳理两种最常用的思路,尤其是第二种方案,能帮你轻松和另一个目标格式的数据集对齐:

方案一:直接转换为2000Jan格式

如果你只想直接把2000M01转成2000Jan这类年份加月份缩写的格式,可以一步到位:

import pandas as pd

# 假设你的DataFrame是df,日期列名为'date_col'
df['formatted_date'] = pd.to_datetime(df['date_col'], format='%YM%m').dt.strftime('%Y%b')
  • format='%YM%m':告诉pandas如何解析你的非标准格式——%Y匹配4位年份,M是固定的分隔字符,%m匹配两位月份;
  • dt.strftime('%Y%b'):把解析后的datetime对象格式化为你要的样式,%b会输出英文月份的缩写(Jan、Feb...)。

方案二:先转成标准datetime格式(推荐,适配多场景)

如果需要和另一个2000Jan格式的数据集对齐,先统一转成标准的2000-01这类datetime类型会更灵活,后续不管是合并数据集还是再转其他格式都很方便:

# 第一步:将非标准日期转成pandas的datetime类型(即2000-01-01这类标准格式)
df['standard_date'] = pd.to_datetime(df['date_col'], format='%YM%m')

# 第二步:如果之后需要转成2000Jan格式,再执行这一步
df['formatted_date'] = df['standard_date'].dt.strftime('%Y%b')

适配另一个数据集的转换

如果你的另一个数据集日期是2000Jan格式,也用同样的方法转成标准datetime:

# 假设另一个数据集是other_df,日期列是'target_date'
other_df['standard_date'] = pd.to_datetime(other_df['target_date'], format='%Y%b')

这样两个数据集就可以通过standard_date列轻松合并、对齐,还能支持后续的日期筛选、运算等操作。

处理异常值

如果你的日期列里有不符合格式的脏数据,可以通过errors参数处理,比如把无效值设为NaT(pandas里的空日期):

df['standard_date'] = pd.to_datetime(df['date_col'], format='%YM%m', errors='coerce')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 12:22:45