np.where数据帧上的嵌套条件

2024-10-03 09:08:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个名为histdf的数据帧,如下所示。我想添加一个新的列名'Side',并满足以下条件:

计算priceAsk和priceBid之间的价差

如果价格高于PriceAsk+PriceBid+差价10%的平均值:应询问一方

如果平均值小于PriceAsk+PriceBid的平均值-差价的10%:应进行投标

^{tb1}$

这是我失败的尝试。你能帮我找到合适的代码吗

histdf['Side'] = np.where(histdf['price'] < (((histdf['priceBid'] + histdf['priceAsk']) // 2) - (0.1 * ((histdf['priceBid'] + histdf['priceAsk']) // 2))) , 'BID', \
                np.where(histdf['price'] > (((histdf['priceBid'] + histdf['priceAsk']) // 2) + (0.1 * ((histdf['priceBid'] + histdf['priceAsk']) // 2))) , 'ASK', 'MID'))`

提前感谢你的帮助


Tags: 数据np价格where条件priceside平均值
1条回答
网友
1楼 · 发布于 2024-10-03 09:08:44

非常感谢您的快速回复

你在回答中遗漏了中间部分,但你为我指明了正确的方向

下面是我最后编写的代码。如果有更干净的方法可以做到这一点,我仍然愿意听取社区的意见:

histdf['Mid']= (histdf['priceAsk'] + histdf['priceBid']) / 2.0
histdf['BidAskSpread']=histdf['priceAsk']-histdf['priceBid']
histdf['Side']=np.where(histdf['price'] <= (histdf['Mid'] - (0.1 * histdf['BidAskSpread'])), 'Bid',np.where(histdf['price'] >= (histdf['Mid'] + (0.1 *histdf['BidAskSpread'])), 'Ask', 'Mid'))

相关问题 更多 >