Pandas解析非英语字符串日期

2024-04-20 13:26:13 发布

您现在位置:Python中文网/ 问答频道 /正文

Pandas非常擅长解析英文字符串日期:

In [1]: pd.to_datetime("11 January 2014 at 10:50AM")
Out[1]: Timestamp('2014-01-11 10:50:00')

我想知道,当字符串使用另一种语言时,是否有一种简单的方法可以使用pandas实现同样的效果,例如法语:

^{pr2}$

ValueError: Unknown string format

理想情况下,有一种方法可以直接在pd.read_csv中完成。在


Tags: to方法字符串in语言pandasdatetimeout
1条回答
网友
1楼 · 发布于 2024-04-20 13:26:13

有一个名为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文件:

^{pr2}$

实际上,您可以使用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:

# Using apply (6.22 ms per loop)
df.Date = df.Date.apply(lambda x: dateparser.parse(x))

# Or map which is slightly slower (7.75 ms per loop)
df.Date = df.Date.map(dateparser.parse)

相关问题 更多 >