我收到以下格式的实时数据:
time : price
93015 : 10450
93016 : 10450
93020 : 10500
如上所述,时间不会每秒返回。我想它每回到固定的时间都会回来。
我想每5分钟制作一次开盘价,最高价,最低价,收盘价。
请让我知道。
ctime = com_obj.GetHeaderValue(18) #get realtime time data, type=integer
time_stamp = ctime
cur_price = com_obj.GetHeaderValue(13) #get realtime price data type=integer
df = pd.DataFrame(dict(price=cur_price, time_stamp=time_stamp)).set_index('time_stamp').sort_index()
这是我上面的代码。当我编码第4行时,错误消息加速
答案 0 :(得分:1)
您可以使用resample()
方法使用ohlc
功能。
import pandas as pd
import numpy as np
#from io import StringIO # if you use python 3.x
from StringIO import StringIO # if you use python 2.x
raw_data_string_buffer = 'time : price\n93015 : 10450\n93016 : 10450\n93020 : 10500\n'
print(raw_data_string_buffer)
time : price
93015 : 10450
93016 : 10450
93020 : 10500
# replace the stringio part with your file path
data = pd.read_csv(StringIO(raw_data_string_buffer), header=0, sep=':', names=['time', 'price'])
data['time'] = pd.to_datetime(data['time'], format='%H%M%S')
data = data.set_index(['time'])
data.resample('5min', how='ohlc')
Out[177]:
price
open high low close
time
1900-01-01 09:30:00 10450 10500 10450 10500