gpt4 book ai didi

python - 将字典中的错误附加到数据框

转载 作者:行者123 更新时间:2023-12-04 07:24:56 27 4
gpt4 key购买 nike

我正在尝试将字典中的数据提取到 df 中,最后提取到 CSV 中,我需要填充行。此外,'res' 每隔一秒就会更改一次,因为它正在从 API 获取数据。
这是我尝试过的:

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}]
请建议相同的优化代码。

最佳答案

使用 concat DataFrame构造函数,对于新列名称使用 rename :

rename = {'TotalOrders':'_to','BuyBackMarketMaker':'_buyback'}
df = pd.concat([pd.DataFrame(d['Bids']).rename(columns=rename).add_prefix('bid'),
pd.DataFrame(d['Asks']).rename(columns=rename).add_prefix('ask')], axis=1)

print (df)
bidSize bidPrice bid_to bid_buyback askSize askPrice ask_to \
0 21 1999.15 2 0 1 1999.80 1
1 20 1999.10 1 0 3 1999.85 1
2 40 1999.05 1 0 34 1999.90 2
3 185 1999.00 6 0 199 2000.00 10
4 7 1998.80 2 0 1 2000.05 1

ask_buyback
0 0
1 0
2 0
3 0
4 0

关于python - 将字典中的错误附加到数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68270130/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com