将对象转换为日期时间会引发错误

时间:2018-10-09 09:39:00

标签: python pandas

一个两部分的问题

我正在尝试将列转换为日期时间,我认为这很容易?就像我之前在使用文档的其他df上所做的一样,没有太大问题。

  df = pd.DataFrame({'date' : ['24 October 2018', '23 April 2018', '18 January 2018']})
    print(df)
    date
0   24 October 2018
1   23 April 2018
2   18 January 2018

我正在查看datetime文档,我认为这段代码会将此列(是一个对象)转换为datetime

df.date =  pd.to_datetime(df['date'], format="%d-%m-%Y",errors='ignore')

出现错误:

ValueError: time data '24 April 2018' does not match format '%d-%m-%Y' (match)

我尝试使用公式并通过文档无济于事!

2 个答案:

答案 0 :(得分:1)

您使用了错误的格式。 '24 October 2018'使用format="%d %B %Y"。格式说明符在here中列出。

编辑:-演示-

>>> import pandas as pd
>>> df = pd.DataFrame({'date':['24 October 2018', '23 April 2018', '18 January 2018']})
>>> df.date = pd.to_datetime(df['date'], format="%d %B %Y")
>>> 
>>> df
        date
0 2018-10-24
1 2018-04-23
2 2018-01-18
>>>
>>> df['date'][0]
Timestamp('2018-10-24 00:00:00')
>>> df['date'][0].month
10

编辑2:第二个问题

>>> df['status'] = ['complete', 'complete', 'requested']
>>> df
        date     status
0 2018-10-24   complete
1 2018-04-23   complete
2 2018-01-18  requested
>>>
>>> df[df['status'] != 'complete']
        date     status
2 2018-01-18  requested

答案 1 :(得分:0)

您可以使用ldr r2, [r1]pd.to_datetime

datetime