gpt4 book ai didi

python - Pandas-根据列值查找行中的第一次出现

转载 作者:行者123 更新时间:2023-12-03 17:25:17 30 4
gpt4 key购买 nike

我有以下数据框:

 Row    Bid_price   Bid_volume  Ask_price   Ask_volume
2 2999.0 786.7 -500.0 1403.2
3 3000.0 786.7 -499.9 1407.2
4 2950.0 787.3 -250.1 1407.2
---------------------
56 125.1 2691 36.9 3113.1
57 125 2691.1 37 3133.1
---------------------
117 41.4 3029.7 2999 3835.7
118 40.05 3029.7 3000 3835.7
---------------------
123 39.4 3129.7 NaN NaN
124 36.1 3129.7 NaN NaN
125 36 3134.7 NaN NaN

我要拿第一双 Bid_price and Bid_volume (2999.0 and 786.7)并与所有对 Ask_price and Ask_volume 进行比较.只要 Bid_volume < Ask_volume AND Bid_price > Ask_price我跳到下一对 Bid_price and Bid_volume并再次与所有对 Ask_price and Ask_volume 进行比较. Bid_Price正在减少, Bid_Volume正在增加, Ask_Price正在增加, Ask_Volume在增长。 Bid_Price, Bid_Volume具有相同的长度,但 Ask_PriceAsk_Volume较短。

输出应该是第一个实例,其中 Bid_volume is > Ask_volume AND Bid_price < Ask_price ,所以条件成立。 就是这种情况第 124 行 一对 Bid_Price and Bid_Volume , 与 匹配第 56 行 一对 Ask_Price and Ask_Volume .

所需的输出应该是:
Row      Bid_price    Bid_volume  
124 36.1 3129.7

Row Ask_price Ask_volume
56 36.9 3113.1

我的问题是我只能评估每一行的条件。这不返回任何内容:
BidAsk = BidAsk[(BidAsk["Bid_volume"] > BidAsk["Ask_volume"]) & (BidAsk["Bid_price"] < BidAsk["Ask_price"])]
BidAsk[["Bid_price","Bid_volume"]]

这在这里给出了一个回溯错误:
BidAsk = BidAsk.where((BidAsk["Bid_volume"] > BidAsk["Ask_volume"]) & (BidAsk["Bid_Price"] < BidAsk["Ask_Price"]))
BidAsk[["Bid_price", "Bid_volume"]]

非常感谢任何帮助。谢谢!

最佳答案

第一种方法不返回任何内容,因为这两个条件始终为假,您必须反转比较符号。

BidAsk = BidAsk[(BidAsk["Bid_volume"] < BidAsk["Ask_volume"]) & (BidAsk["Bid_price"] > BidAsk["Ask_price"])]

关于python - Pandas-根据列值查找行中的第一次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61936688/

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