如何使用Pandas解析时区Datetime对象

问题描述

因此,相当简单: 列的日期是这样的:“ 2000-05-30 17:27:00-05:00”

    data                   open high    low close
0   2000-05-30 17:27:00-05:00   0.9302  0.9302  0.9302  0.9302
1   2000-05-30 17:35:00-05:00   0.9304  0.9305  0.9304  0.9305
2   2000-05-30 17:38:00-05:00   0.9304  0.9304  0.9303  0.9303
3   2000-05-30 17:43:00-05:00   0.9301  0.9301  0.9300  0.9300
4   2000-05-30 17:44:00-05:00   0.9298  0.9298  0.9297  0.9297

我尝试了自定义解析器:

custom_parser = lambda x: datetime.strptime(x,"%Y-%m-%d %H:%M:%s-%z")
data = pd.read_csv('eurusd_2.csv',parse_dates=[0],date_parser=custom_parser,parse_dates=True)

但这是行不通的;我认为这是由于时区“ -05:00”中的“:”引起的-此问题有解决方案吗?

是否有一种类似于指定年/月/日格式的时区格式?

在此先感谢

C

解决方法

简单:

df = pd.read_csv('file.csv',parse_dates=['data'],sep='\s\s+')

似乎可以正常工作。 df['data']是:

0   2000-05-30 17:27:00-05:00
1   2000-05-30 17:35:00-05:00
2   2000-05-30 17:38:00-05:00
3   2000-05-30 17:43:00-05:00
4   2000-05-30 17:44:00-05:00
Name: data,dtype: datetime64[ns,pytz.FixedOffset(-300)]

也许您的数据包含一些违规行为。