【问题标题】:de-duplication function that only keeps the minimum for every 5 sec of previous value重复数据删除功能,每 5 秒保留先前值的最小值
【发布时间】:2016-06-13 17:51:04
【问题描述】:

我有一个问题:

编写一个重复数据删除函数,只保留每 5 秒前一个值的最小值

0.0 (keep)
2.3 (drop)
4.1 (drop)
5.3 (keep)
7.5 (drop)
8.3 (drop)
10.2 (drop)
11.4 (keep)

我如何尽可能快地输入 sql 和 Python?

认为这只是一列或一组值中的一些值。

我试过这个:

def de-dup(a):
   output_array=[]
   c=0
   d=a[c]
   while (d<=a[len(a)-1]):
      if a[c]<=d:
        output_array.append(a[c])
      c+=1
      d=a[c]+5
   return output_array

我们可以在 sql 中执行此操作吗?我认为如果我们可以得到值的累积总和,但只能从以前的值中获得,然后用当前值检查累积值并下降,我们可以做到。

听起来怎么样?

【问题讨论】:

  • 向我们展示您的尝试。我们随时为您提供帮助,但我们不会为您编写代码。
  • 您的示例显示值,但不显示时间。你如何获得这些信息? SQL 是如何融入其中的?
  • 您在寻找什么样本输出?突出显示的数据是否在数据库中可用?
  • 检查编辑我添加了代码
  • 输出只会是“保留”的值

标签: python sql


【解决方案1】:

我知道你有什么样的数据。
您可以将创建时间的数据添加到列表中,而不是将最新的与新的项目进行比较。

keepLst  = [] 
if not keepLst:
  keepLst.append(item)
else:
  if item.created_time() - keepLst[-1].created_time() > 5:
    keepLst.append(item)


您可以让您的程序休眠 5 秒然后开始接收数据,一旦获得一个数据再次休眠

【讨论】:

    猜你喜欢
    • 2022-01-22
    • 2022-06-28
    • 2013-07-10
    • 1970-01-01
    • 2019-06-05
    • 1970-01-01
    • 2019-10-27
    • 2021-10-25
    • 2021-12-29
    相关资源
    最近更新 更多