python - 在没有循环的情况下迭代一列数组
问题描述
我的数据框如下所示:
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
每行等于的列asks[0][0] + bids[0][0] / 2
关于如何在没有循环的情况下做到这一点的任何想法?像 lambda 函数?类似的东西:df.assign(midprice = lambda x: (x['bids'][0] + x['asks'][0]) * 0.5)
输出应该是如下所示的列:
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))
推荐阅读
- html - 如何在按钮中的文本旁边添加图标?
- c++ - _Orphan_range 使用静态向量时崩溃(另一个示例)
- lua - 罗技 G502 Hero 脚本
- javascript - 在 JS 中正确实现互斥机制
- javascript - 使用 jQuery 动态生成时,多选选项组引导程序未加载
- typescript - 如何键入键的对象:reducerFunctions 根据 Typescript 中的接口
- firebase - 缺少文件附加错误颤振火力基地
- python - 将来自 MS Azure 上麦克风的连续语音识别存储到单独的变量中
- android - React Native 拖放到文件夹中
- php - Laravel S3 文件上传测试错误