I am trying to extract data from a Dictionary into a df and finally into a CSV and I need to fill rows. Also 'res' gets changed every other second as it is fetching data from an API.
This is what I have tried:
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)
It gives:
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
I want it to be concise in 5 rows and not 40 rows.
The sample data inside dictionary which I am using looks like:
"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}]
pls suggest an optimized code for the same.