在日期列表中查找最接近的过去日期

杰克·里奇

我正在尝试在日期列表中找到与当前日期最接近的过去日期。我已经找到了几个在列表中搜索最接近日期的示例,但是所有这些示例都允许返回另一个日期。

日期时间列表具有以下形式:

datelist =
[datetime.datetime(2019, 12, 31, 0, 0),
 datetime.datetime(2020, 1, 10, 0, 0),
 datetime.datetime(2020, 1, 20, 0, 0),
 datetime.datetime(2020, 1, 31, 0, 0),
 datetime.datetime(2020, 2, 10, 0, 0),
 datetime.datetime(2020, 2, 20, 0, 0)]

到目前为止,我一直在实现以下功能以查找最接近的日期;

def nearest_ind(items, pivot):
    '''
    Find the nearest value to the given value (the pivot) in a list.
    '''
    time_diff = np.abs([date - pivot for date in items])
    return time_diff.argmin(0)

但这会将最接近的日期返回到当前日期,是返回将来最接近的日期的一半时间。我也一直在考虑实现numpy searchsorted函数,但这似乎总是返回最接近的将来日期,而不管我是通过以下方式为side参数选择“ right”还是“ left”:

np.searchsorted(datelist, datetime.datetime.now(), side='right')
np.searchsorted(datelist, datetime.datetime.now(), side='left')

numpy searchsorted函数在任何一个实例中均返回(如果我今天要在2020年2月7日运行该函数)4(对应于datetime.datetime(2020,2,10,0,0))。有谁知道一种确保始终返回过去最接近日期的方法?

克里斯

min与2一起使用key将是一种方式:

from datetime import datetime

now = datetime.now()
min(datelist, key=lambda x: (x>now, abs(x-now)) )

输出:

datetime.datetime(2020, 1, 31, 0, 0)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在日期时间列表中查找最接近的日期

来自分类Dev

在输入日期之前的列表中查找最接近的日期

来自分类Dev

从列表中获取最接近的日期时间

来自分类Dev

在最接近指定日期的列表中查找上一个日期

来自分类Dev

查找最接近的日期(javascript)

来自分类Dev

查找最接近的日期(javascript)

来自分类Dev

如何禁用daterangepicker中的过去日期?

来自分类Dev

禁用FullCalendar中的过去日期下降

来自分类Dev

如何禁用daterangepicker中的过去日期?

来自分类Dev

在一个查询中查找最接近的日期

来自分类Dev

与最接近的日期相对应的查找值

来自分类Dev

如果日期等于某个日期,则查找最接近的值

来自分类Dev

如果日期等于某个日期,则查找最接近的值

来自分类Dev

从颜色列表中查找最接近的颜色

来自分类Dev

在给定条件的情况下在熊猫数据框中查找最接近的日期

来自分类Dev

在 Pandas 中查找包含最接近给定日期时间的字符串

来自分类Dev

查找最接近指定日期时间的记录

来自分类Dev

使用带有日期差异的SQL查找最接近的值

来自分类Dev

SQL Server 查找最接近日期的班次开始(时间)

来自分类Dev

SQL:查找下一个最接近的日期

来自分类Dev

如何在引导日期时间选择器中禁用今天的过去日期?

来自分类Dev

如何在Eonasdan引导程序datetimepicker中禁用日期范围的过去日期?

来自分类Dev

查询以按日期列表返回匹配或最接近的先前记录

来自分类Dev

使用谷歌地球引擎在列表中找到最接近的日期

来自分类Dev

获取最接近sysdate的日期

来自分类Dev

如何找到过去日期以后n天的日期?

来自分类Dev

创建过去日期为结束日期的自签名证书

来自分类Dev

创建过去日期为结束日期的自签名证书

来自分类Dev

如果我无法在模型中禁止使用过去日期创建对象,如何在Rails上使用RSpec过去日期进行测试?

Related 相关文章

  1. 1

    在日期时间列表中查找最接近的日期

  2. 2

    在输入日期之前的列表中查找最接近的日期

  3. 3

    从列表中获取最接近的日期时间

  4. 4

    在最接近指定日期的列表中查找上一个日期

  5. 5

    查找最接近的日期(javascript)

  6. 6

    查找最接近的日期(javascript)

  7. 7

    如何禁用daterangepicker中的过去日期?

  8. 8

    禁用FullCalendar中的过去日期下降

  9. 9

    如何禁用daterangepicker中的过去日期?

  10. 10

    在一个查询中查找最接近的日期

  11. 11

    与最接近的日期相对应的查找值

  12. 12

    如果日期等于某个日期,则查找最接近的值

  13. 13

    如果日期等于某个日期,则查找最接近的值

  14. 14

    从颜色列表中查找最接近的颜色

  15. 15

    在给定条件的情况下在熊猫数据框中查找最接近的日期

  16. 16

    在 Pandas 中查找包含最接近给定日期时间的字符串

  17. 17

    查找最接近指定日期时间的记录

  18. 18

    使用带有日期差异的SQL查找最接近的值

  19. 19

    SQL Server 查找最接近日期的班次开始(时间)

  20. 20

    SQL:查找下一个最接近的日期

  21. 21

    如何在引导日期时间选择器中禁用今天的过去日期?

  22. 22

    如何在Eonasdan引导程序datetimepicker中禁用日期范围的过去日期?

  23. 23

    查询以按日期列表返回匹配或最接近的先前记录

  24. 24

    使用谷歌地球引擎在列表中找到最接近的日期

  25. 25

    获取最接近sysdate的日期

  26. 26

    如何找到过去日期以后n天的日期?

  27. 27

    创建过去日期为结束日期的自签名证书

  28. 28

    创建过去日期为结束日期的自签名证书

  29. 29

    如果我无法在模型中禁止使用过去日期创建对象,如何在Rails上使用RSpec过去日期进行测试?

热门标签

归档