无法将日期时间转换为python可读格式

无法将日期时间转换为python可读格式,python,datetime,Python,Datetime,我的日期时间范围如下: Date 2017-04-02 12:00 AM 2017-04-02 01:00 AM 2017-04-02 02:00 AM 2017-04-02 03:00 AM 2017-04-02 04:00 AM 2017-04-02 05:00 AM 2017-04-02 06:00 AM 2017-04-02 07:00 AM 2017-04-02 08:00 AM 2017-04-02 09:00 AM 2017-04-02 10:00 AM 我想将它们全部转换为py

我的日期时间范围如下:

Date
2017-04-02 12:00 AM
2017-04-02 01:00 AM
2017-04-02 02:00 AM
2017-04-02 03:00 AM
2017-04-02 04:00 AM
2017-04-02 05:00 AM
2017-04-02 06:00 AM
2017-04-02 07:00 AM
2017-04-02 08:00 AM
2017-04-02 09:00 AM
2017-04-02 10:00 AM
我想将它们全部转换为python日期时间,以便在x轴上绘制。我使用了以下代码:

dates=fire['Date']#copy date value in dataframe
x = dt.datetime.strptime('dates',"%Y-%m-%d %I:%M %p").date() 
但它给我的错误是:

time data 'd' does not match format '%Y-%m-%d %I:%M %p'
如何将所有这些日期转换为python可读的日期?

d是一个变量,因此需要删除引号:

x = [dt.datetime.strptime(d,"%Y-%m-%d %I:%M %p").date() for d in dates]
编辑:可复制的示例 根据OP请求,这里有一个可复制的示例:

import pandas as pd 
import datetime as dt 
from StringIO import StringIO 

data="""
Date
2017-04-02 12:00 AM
2017-04-02 01:00 AM
2017-04-02 02:00 AM
2017-04-02 03:00 AM
2017-04-02 04:00 AM
2017-04-02 05:00 AM
2017-04-02 06:00 AM
2017-04-02 07:00 AM
2017-04-02 08:00 AM
2017-04-02 09:00 AM
2017-04-02 10:00 AM
"""
# StringIO is used to simulate reading from a csv file
df = pd.read_csv(StringIO(data))
print(df.head()) 

dates = df['Date']
x = [dt.datetime.strptime(d,"%Y-%m-%d %I:%M %p").date() for d in dates]
print(x) 
输出:

[datetime.date(2017, 4, 2), datetime.date(2017, 4, 2), datetime.date(2017, 4, 2), datetime.date(2017, 4, 2), datetime.date(2017, 4, 2), datetime.date(2017, 4, 2), datetime.date(2017, 4, 2), datetime.date(2017, 4, 2), datetime.date(2017, 4, 2), datetime.date(2017, 4, 2), datetime.date(2017, 4, 2)]
                 Date
0 2017-04-02 00:00:00
1 2017-04-02 01:00:00
2 2017-04-02 02:00:00
3 2017-04-02 03:00:00
4 2017-04-02 04:00:00
另一方面,熊猫可以为您解析日期,如下所示:

df2 = pd.read_csv(StringIO(data), parse_dates=['Date'])
输出:

[datetime.date(2017, 4, 2), datetime.date(2017, 4, 2), datetime.date(2017, 4, 2), datetime.date(2017, 4, 2), datetime.date(2017, 4, 2), datetime.date(2017, 4, 2), datetime.date(2017, 4, 2), datetime.date(2017, 4, 2), datetime.date(2017, 4, 2), datetime.date(2017, 4, 2), datetime.date(2017, 4, 2)]
                 Date
0 2017-04-02 00:00:00
1 2017-04-02 01:00:00
2 2017-04-02 02:00:00
3 2017-04-02 03:00:00
4 2017-04-02 04:00:00

取消引用d varunquote d获取更多信息检查@EvgenyKolyakov我已删除d并编辑了问题。但是,它给了我同样的错误时间“日期”,。。。仍然在quotes@Michal什么应该在引号里。或者我应该在这里取消引号。我是python新手。所以我也不知道much@MalaPokhrel检查编辑,我添加了一个可复制的示例。@MalaPokhrel使用dt.datetime.strptimed,%Y-%m-%d%I:%m%p而不是dt.datetime.strptimed,%Y-%m-%d%I:%m%p.date