如何将以下数据帧转换为带有pandas的时间序列?
Date Open High Low Close
0 25/07/14 09 h 31 min 00 s +02:00 -1 -1 -887 -448
1 25/07/14 09 h 32 min 00 s +02:00 -425 -385 -455 -414
2 25/07/14 09 h 33 min 00 s +02:00 -432 -432 -654 -601
答案 0 :(得分:0)
从这开始:
>>> ts
0 25/07/14 09 h 31 min 00 s +02:00
1 25/07/14 09 h 32 min 00 s +02:00
2 25/07/14 09 h 33 min 00 s +02:00
dtype: object
您可以指定日期时间格式,如下所示:
>>> pd.to_datetime(ts, format='%d/%m/%y %H h %M min %S s +02:00')
0 2014-07-25 09:31:00
1 2014-07-25 09:32:00
2 2014-07-25 09:33:00
dtype: datetime64[ns]
如果+2:00
表示偏移2小时,则:
>>> _ + np.timedelta64(2, 'h')
0 2014-07-25 11:31:00
1 2014-07-25 11:32:00
2 2014-07-25 11:33:00
dtype: datetime64[ns]
当然,如果+02:00
具有不同的含义或未修复,则需要更多的字符串操作。
或者,您可以将+02:00
转换为UTC偏移格式并使用'%z'
指令进行解析:
>>> ts = ts.str.replace(r'(\d\d):(\d\d)$', r'\1\2')
>>> ts
0 25/07/14 09 h 31 min 00 s +0200
1 25/07/14 09 h 32 min 00 s +0200
2 25/07/14 09 h 33 min 00 s +0200
dtype: object
>>> ts.map(lambda t: dt.datetime.strptime(t, '%d/%m/%y %H h %M min %S s %z'))
0 2014-07-25 09:31:00+02:00
1 2014-07-25 09:32:00+02:00
2 2014-07-25 09:33:00+02:00
dtype: object