【发布时间】:2021-07-06 20:10:46
【问题描述】:
我正在尝试将字典中的数据提取到 df 中,最后提取到 CSV 中,我需要填充行。在从 API 获取数据时,“res”每隔一秒就会更改一次。
这是我尝试过的:
for x in range(0,5):
df1 = df1.append({'bidsize':res["Bids"][x]["Size"]}, ignore_index= True)
df1 = df1.append({'bidprice':res["Bids"][x]["Price"]}, ignore_index= True)
df1 = df1.append({'bid_to':res["Bids"][x]["TotalOrders"]}, ignore_index= True)
df1 = df1.append({'bid_buyback':res["Bids"][x]["BuyBackMarketMaker"]}, ignore_index= True)
df1 = df1.append({'asksize':res["Asks"][x]["Size"]}, ignore_index= True)
df1 = df1.append({'askprice':res["Asks"][x]["Price"]}, ignore_index= True)
df1 = df1.append({'ask_to':res["Asks"][x]["TotalOrders"]}, ignore_index= True)
df1 = df1.append({'ask_buyback':res["Asks"][x]["BuyBackMarketMaker"]}, ignore_index= True)
print(df1)
它给出:
bidsize bidprice bid_to bid_buyback asksize askprice ask_to ask_buyback
0 1044.0 NaN NaN NaN NaN NaN NaN NaN
1 NaN 2142.00 NaN NaN NaN NaN NaN NaN
2 NaN NaN 8.0 NaN NaN NaN NaN NaN
3 NaN NaN NaN 0.0 NaN NaN NaN NaN
4 NaN NaN NaN NaN 247.0 NaN NaN NaN
5 NaN NaN NaN NaN NaN 2142.50 NaN NaN
6 NaN NaN NaN NaN NaN NaN 2.0 NaN
7 NaN NaN NaN NaN NaN NaN NaN 0.0
8 2.0 NaN NaN NaN NaN NaN NaN NaN
9 NaN 2141.90 NaN NaN NaN NaN NaN NaN
10 NaN NaN 2.0 NaN NaN NaN NaN NaN
11 NaN NaN NaN 0.0 NaN NaN NaN NaN
12 NaN NaN NaN NaN 8.0 NaN NaN NaN
13 NaN NaN NaN NaN NaN 2142.70 NaN NaN
14 NaN NaN NaN NaN NaN NaN 1.0 NaN
15 NaN NaN NaN NaN NaN NaN NaN 0.0
16 47.0 NaN NaN NaN NaN NaN NaN NaN
17 NaN 2141.85 NaN NaN NaN NaN NaN NaN
18 NaN NaN 1.0 NaN NaN NaN NaN NaN
19 NaN NaN NaN 0.0 NaN NaN NaN NaN
20 NaN NaN NaN NaN 495.0 NaN NaN NaN
21 NaN NaN NaN NaN NaN 2142.75 NaN NaN
22 NaN NaN NaN NaN NaN NaN 2.0 NaN
23 NaN NaN NaN NaN NaN NaN NaN 0.0
24 313.0 NaN NaN NaN NaN NaN NaN NaN
25 NaN 2141.80 NaN NaN NaN NaN NaN NaN
26 NaN NaN 3.0 NaN NaN NaN NaN NaN
27 NaN NaN NaN 0.0 NaN NaN NaN NaN
28 NaN NaN NaN NaN 239.0 NaN NaN NaN
29 NaN NaN NaN NaN NaN 2142.80 NaN NaN
30 NaN NaN NaN NaN NaN NaN 1.0 NaN
31 NaN NaN NaN NaN NaN NaN NaN 0.0
32 47.0 NaN NaN NaN NaN NaN NaN NaN
33 NaN 2141.75 NaN NaN NaN NaN NaN NaN
34 NaN NaN 1.0 NaN NaN NaN NaN NaN
35 NaN NaN NaN 0.0 NaN NaN NaN NaN
36 NaN NaN NaN NaN 860.0 NaN NaN NaN
37 NaN NaN NaN NaN NaN 2142.90 NaN NaN
38 NaN NaN NaN NaN NaN NaN 5.0 NaN
39 NaN NaN NaN NaN NaN NaN NaN 0.0
我希望它简洁成 5 行而不是 40 行。
我正在使用的字典中的示例数据如下所示:
"Bids":[{"Size":21,"Price":1999.15,"TotalOrders":2,"BuyBackMarketMaker":0},
{"Size":20,"Price":1999.1,"TotalOrders":1,"BuyBackMarketMaker":0},
{"Size":40,"Price":1999.05,"TotalOrders":1,"BuyBackMarketMaker":0},
{"Size":185,"Price":1999,"TotalOrders":6,"BuyBackMarketMaker":0},
{"Size":7,"Price":1998.8,"TotalOrders":2,"BuyBackMarketMaker":0}],
"Asks":[{"Size":1,"Price":1999.8,"TotalOrders":1,"BuyBackMarketMaker":0},
{"Size":3,"Price":1999.85,"TotalOrders":1,"BuyBackMarketMaker":0},
{"Size":34,"Price":1999.9,"TotalOrders":2,"BuyBackMarketMaker":0},
{"Size":199,"Price":2000,"TotalOrders":10,"BuyBackMarketMaker":0},
{"Size":1,"Price":2000.05,"TotalOrders":1,"BuyBackMarketMaker":0}]
请建议一个优化的代码。
【问题讨论】:
标签: python pandas dataframe dictionary