首页 > 解决方案 > Pandas:一列中有多种日期格式

问题描述

我在一个 Pandas 系列(列)中有两种日期格式,需要标准化为一种格式(mmm dd & mm/dd/YY)

日期

1月3日

1月2日

1月1日

19 年 12 月 31 日

19 年 12 月 30 日

19 年 12 月 29 日

即使 Excel 也不会将 mmm dd 格式识别为日期格式。我可以使用 str.replace 将 mmm 更改为完整的月份:

df['Date'] = df['Date'].str.replace('Jan', 'January', regex=True)

但是如何添加当前年份?那么如何将 2020 年 1 月 1 日转换为 01/01/20?

标签: pythonpandaspython-datetime

解决方案


你试过 parse()

from dateutil.parser import parse
import datetime

def clean_date(text):
  datetimestr = parse(text)
  text = datetime.strptime(datetimestr, '%Y%m%d')
  return text

df['Date'] = df['Date'].apply(clean_date)
df['Date'] = pd.to_datetime(df['Date']) 

推荐阅读