Python 在没有循环的情况下遍历数组的列
我的数据框如下所示:Python 在没有循环的情况下遍历数组的列,python,pandas,Python,Pandas,我的数据框如下所示: asks bids lastUpdated 0 [[0.09245, 1654], [0.09265000000000001, 506], ... [[0.09148, 121], [0.09141, 183], [0.09134, 550... 2020-0
asks bids lastUpdated
0 [[0.09245, 1654], [0.09265000000000001, 506], ... [[0.09148, 121], [0.09141, 183], [0.09134, 550... 2020-04-19 00:02:24.464
1 [[0.09245, 1654], [0.09265000000000001, 506], ... [[0.09148, 121], [0.09141, 183], [0.09134, 550... 2020-04-19 00:02:24.464
2 [[0.09245, 1654], [0.09265000000000001, 506], ... [[0.09148, 121], [0.09141, 183], [0.09134, 550... 2020-04-19 00:02:24.464
3 [[0.09245, 1654], [0.09265000000000001, 506], ... [[0.09148, 121], [0.09141, 183], [0.09134, 550... 2020-04-19 00:02:24.464
midprice
0.091965
0.091965
0.091965
0.091965
我需要的是创建一列midprice
,每行等于asks[0][0]+bids[0][0]/2
你知道如何在没有循环的情况下做到这一点吗?像lambda函数?
类似这样:df.assign(中间价=lambda x:[x['bids'][0]+x['asks'][0])*0.5)
输出应为如下所示的列:
asks bids lastUpdated
0 [[0.09245, 1654], [0.09265000000000001, 506], ... [[0.09148, 121], [0.09141, 183], [0.09134, 550... 2020-04-19 00:02:24.464
1 [[0.09245, 1654], [0.09265000000000001, 506], ... [[0.09148, 121], [0.09141, 183], [0.09134, 550... 2020-04-19 00:02:24.464
2 [[0.09245, 1654], [0.09265000000000001, 506], ... [[0.09148, 121], [0.09141, 183], [0.09134, 550... 2020-04-19 00:02:24.464
3 [[0.09245, 1654], [0.09265000000000001, 506], ... [[0.09148, 121], [0.09141, 183], [0.09134, 550... 2020-04-19 00:02:24.464
midprice
0.091965
0.091965
0.091965
0.091965
坦斯克
df = (df
.assign(topBid = df.bids.apply(lambda bid: bid[0][0] if bid else np.nan))
.assign(topAsk = df.asks.apply(lambda ask: ask[0][0] if ask else np.nan))
.assign(midprice = lambda x: (x.topBid + x.topAsk) * 0.5))