有一个名为dateparser的模块,它能够处理包括法语、俄语、西班牙语、荷兰语等在内的多种语言,超过20种。 它还可以识别像时区缩写等内容。
让我们确认它可以处理单个日期:
In [1]: import dateparser
dateparser.parse('11 Janvier 2016 à 10:50')
Out[1]: datetime.datetime(2016, 1, 11, 10, 50)
继续解析此test_dates.csv
文件:
Date Value
0 7 janvier 1983 10
1 21 décembre 1986 21
2 1 janvier 2016 12
你实际上可以使用dateparser.parse
作为解析器:
In [2]: df = pd.read_csv('test_dates.csv',
parse_dates=['Date'], date_parser=dateparser.parse)
print(df)
Out [2]:
Date Value
0 1983-01-07 10
1 1986-12-21 21
2 2016-01-01 12
显然,如果您已经加载了数据框,而需要在此之后执行此操作,则可以始终使用apply或map:
df.Date = df.Date.apply(lambda x: dateparser.parse(x))
df.Date = df.Date.map(dateparser.parse)