在Python Pandas中,如何将格式化的日期字符串转换为日期时间?

4

我已经尝试了几种使用 to_datetime 的方法,但到目前为止,我只能让它返回 dtype 为 "object"。

pd.to_datetime(pd.Series(['28Dec2013 19:23:15']),dayfirst=True)

这个命令的返回值是:
0    28Dec2013 19:23:15
dtype: object
3个回答

5

您可以向to_datetime函数传递一个format参数。

>>> import pandas as pd
>>> df = pd.to_datetime(pd.Series(['28Dec2013 19:23:15']),format="%d%b%Y %H:%M:%S",dayfirst=True)
>>> df
0   2013-12-28 19:23:15
dtype: datetime64[ns]

0
如果您需要在数据框中转换现有列,可以使用帮助函数convapply方法来解决问题。
import datetime
import pandas as pd

def conv(x):
    return datetime.datetime.strptime(x, '%d%b%Y %H:%M:%S')

series = pd.Series(['28Dec2013 19:23:15'])
converted = series.apply(conv)

0   2013-12-28 19:23:15
dtype: datetime64[ns]

-1

Pandas无法识别该日期时间格式。

>>> pd.to_datetime(Series(['28Dec2013 19:23:15']))
0    28Dec2013 19:23:15
dtype: object
>>> pd.to_datetime(Series(['28 Dec 2013 19:23:15']))
0   2013-12-28 19:23:15
dtype: datetime64[ns]

您需要解析输入到Series中的字符串。正则表达式可能是一个不错的解决方案。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接