Python 基于pandas的实时数据处理

Python 基于pandas的实时数据处理,python,pandas,Python,Pandas,我正在接收以下格式的实时数据: 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.Ge

我正在接收以下格式的实时数据:

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()
这是我上面的代码。当我编码第四行时,会弹出错误消息

您可以使用
ohlc
方法使用
resample()
函数

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

我非常感谢你的回答。但我还是有问题。由于我正在接收“H-MM-SS”或“HH-MM-SS”类型的数据,我认为我的时间值必须转换为“YYYY-HH-MM-SS”类型。或者,我的原始数据是否有时间戳?我的错误是:如果使用所有标量值,则必须传递一个index@islandman346尝试此方法读取数据,
data=pd.read\u csv(您的文件路径,header=0,sep=':',name=['time','price'])
并请发布
data.head()的结果
@islandman346您的原始数据文件是什么样子的?与你文章开头的格式相同吗?@islandman346我修改了代码。您可以用自己的文件路径替换
pd.read\u csv
函数中的
StringIO(原始数据\u字符串\u缓冲区)
。让我知道这是否适合你。