Pandas: 一列多种日期格式

Pandas: Multiple date formats in one column

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

日期

1 月 3 日

1 月 2 日

1 月 1 日

12/31/19

12/30/19

12/29/19

甚至 Excel 也不会将 mmm dd 格式识别为日期格式。我可以使用 str.replace:

将 mmm 更改为完整拼写的月份

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

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

你试过 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']) 

如果它在数据框中使用这个:

from dateutil.parser import parse
import pandas as pd

for i in range(len(df['Date'])):
    df['Date'][i] = parse(df['Date'][i])
df['Date'] = pd.to_datetime(df['Date']).dt.strftime("%d-%m-%Y")

找到解决方案(需要使用apply):

df['date'] = df['date'].apply(dateutil.parser.parse)