数据出现在(orderbook =pd.DataFrame(Orderbook_data))之后的3列:
timestamp bids asks
UNIX timestamp [bidprice, bidvolume] [askprice, askvolume]
list has 100 values of each. timestamp is the same 问题是,我不知道如何访问/索引每行列表中的值、价格、每列的数量
我知道,通过运行-> bids =订单簿“出价”
我得到了100份清单
我想避免做一个循环..。必须有一种方法来绘制数据
我希望有人能理解我的问题。我只想画x的价格和y的成交量。目的是让它活下来。
发布于 2020-09-05 20:57:54
由于您没有显示您的输入文件,所以我自己准备的:
timestamp;bids
1579082401;[123.12, 300]
1579082461;[135.40, 220]
1579082736;[130.76, 20]
1579082801;[123.12, 180]为了阅读它,我用:
orderbook = pd.read_csv('Input.csv', sep=';')
orderbook.timestamp = pd.to_datetime(orderbook.timestamp, unit='s')其内容如下:
timestamp bids
0 2020-01-15 10:00:01 [123.12, 300]
1 2020-01-15 10:01:13 [135.40, 220]
2 2020-01-15 10:05:36 [130.76, 20]
3 2020-01-15 10:06:41 [123.12, 180]现在:
而且,正如我所设想的,在从输入文件中读取时,情况是相同的。
现在的主要任务是:第一步是从投标中提取这两个数字,将它们转换为浮动和int,并保存在相应的列中:
orderbook = orderbook.join(orderbook.bids.str.extract(
r'\[(?P<bidprice>\d+\.\d+), (?P<bidvolume>\d+)]'))
orderbook.bidprice = orderbook.bidprice.astype(float)
orderbook.bidvolume = orderbook.bidvolume.astype(int)现在,订单簿包含:
timestamp bids bidprice bidvolume
0 2020-01-15 10:00:01 [123.12, 300] 123.12 300
1 2020-01-15 10:01:01 [135.40, 220] 135.40 220
2 2020-01-15 10:05:36 [130.76, 20] 130.76 20
3 2020-01-15 10:06:41 [123.12, 180] 123.12 180您可以生成例如散点图,调用:
orderbook.plot.scatter('bidprice', 'bidvolume');或其他绘图功能。
另一种可能性
或者你的orderbook_data是字典?类似于:
orderbook_data = {
'timestamp': [1579082401, 1579082461, 1579082736, 1579082801],
'bids': [[123.12, 300], [135.40, 220], [130.76, 20], [123.12, 180]] }在本例中,当您从其中创建DataFrame时,列类型最初如下:
然后,您还可以将时间戳列转换为日期时间,就像上面一样。
但是,要将投标(lists的一列)分成两个单独的列,您应该运行:
orderbook[['bidprice', 'bidvolume']] = pd.DataFrame(orderbook.bids.tolist())然后有两个新列,分别包含源列的组件,您可以像上面这样创建图形jus。
https://stackoverflow.com/questions/63757031
复制相似问题