以Python Pandas格式提取长日期

时间:2018-02-20 09:48:09

标签: python regex pandas

我有一个数据框,其中包含一些需要清理的日期列。我试着用re或者包含,到目前为止我还没有成功。

     Date 
1 January 2004 : ygagy
3 December 2001 , this job
...04 February 2000 , xyz

理想情况下,我需要看起来像这样:

    Date
01 January 2004 
03 December 2001 
04 February 2000

1 个答案:

答案 0 :(得分:0)

这可能会有所帮助。使用 dateutil 模块

import dateutil.parser as dparser
df["Date"] = [dparser.parse(i,fuzzy=True).strftime('%d %B, %Y') for i in df['Date']]

<强>输出

0     01 January, 2004
1    03 December, 2001
2    04 February, 2000
Name: Date, dtype: object

并使用Regex:

df["Date"] = df.Date.apply(lambda x: re.findall('\d{1,2} \w{3,9} \d{4}', x)[0])    
print df["Date"]

<强>输出:

0      1 January 2004
1     3 December 2001
2    04 February 2000
3     01 Januari 2017
Name: Date, dtype: object