繁体   English   中英

将具有奇异时间戳的数据帧转换为具有熊猫的时间序列

[英]Convert dataframe with odd timestamp to timeseries with 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

从此开始:

>>> 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM