Mongodb与上一个条目的差异

2024-04-24 10:49:39 发布

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

我有一个mongodb集合,包含以下内容:

[{'price': 0.74881,,
  'date': '20160601 00:00:00.134',
  'instrument': 'EUR/GBP'},
 {'price': 0.76881,
  'date': '20160601 00:00:00.135',
  'instrument': 'EUR/GBP'},
 {'price': 0.78881,
  'date': '20160601 00:00:00.300',
  'instrument': 'EUR/GBP'},
 {'price': 1.76881,
  'date': '20160601 00:00:00.302',
  'instrument': 'EUR/GBP'},

如何更新每条记录,使其包含出价的增加/减少百分比,并请求上一条记录?真正的记录包含数以百万计的条目,所以熊猫是不合适的。你知道吗

在输出中,每条记录都应该包含一个额外的字段,名为price\u change\u to \u pervious\u item


Tags: todatemongodb记录条目euritemchange
1条回答
网友
1楼 · 发布于 2024-04-24 10:49:39

似乎您希望以成对的方式处理您的记录。 这个函数来自itertools documentation本身。你知道吗

from itertools import tee, izip

def pairwise(iterable):
  "s -> (s0,s1), (s1,s2), (s2, s3), ..."
  a, b = tee(iterable)
  next(b, None)

  return izip(a, b)

一旦你有了它,并且假设你的数据被分类了

results = []
for d1, d2 in pairwise(data):
  if not result:
    d1['price_change_to_pervious_item'] = 0.0
    results.append(d1)
  delta = d2['price'] - d1['price']
  d2['price_change_to_pervious_item'] = delta
  results.append(d2)

这是没有测试,但你得到了一般的想法。Pairwise允许您以(d1,d2),(d2,d3)的方式处理行。你知道吗

相关问题 更多 >