【问题标题】:What is the best data structure to store objects indexed by date?存储按日期索引的对象的最佳数据结构是什么?
【发布时间】:2016-07-15 22:06:38
【问题描述】:

我有一些与日期相关的对象。我希望能够获取给定日期范围以及单个日期的对象。 python 中最好的数据结构是什么?

我相信在某些语言中,这可以使用“曲线”来实现。

【问题讨论】:

  • 我认为您正在寻找与 Python 等效的 Java TreeMapthis 之类的东西?

标签: python python-3.x


【解决方案1】:

您可以使用pandas DataFrame

import pandas as pd, numpy as np

df = pd.DataFrame(np.random.random((10,1)))
df['date'] = pd.date_range('2016-7-1', periods=10, freq='D')

对于一个日期范围:

>>> df[(df['date'] > '2016-7-3') & (df['date'] <= '2016-7-10')]
          0       date
3  0.322654 2016-07-04
4  0.360684 2016-07-05
5  0.298821 2016-07-06
6  0.292097 2016-07-07
7  0.052085 2016-07-08
8  0.620535 2016-07-09
9  0.902022 2016-07-10

对于给定的日期:

>>> df[df['date'] == '2016-7-3']
          0       date
2  0.191553 2016-07-03

【讨论】:

    【解决方案2】:

    字典可以工作。 datetime 对象可以用作字典键,并且可以在范围内相互比较。

    【讨论】:

    • 但是如果您要查找的日期在字典中的两个日期之间,这将不起作用。
    • 我假设张贴者要求'告诉我存储的日期 X 是否在任意日期 Y 和 Z 之间,而不是'告诉我任意日期 X 是否在存储的日期 Y 和 Z 之间'。但即使这样它也可以工作,您只需将字典中的每一对唯一日期与目标日期进行比较。
    猜你喜欢
    • 2016-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-14
    • 1970-01-01
    • 1970-01-01
    • 2019-05-10
    相关资源
    最近更新 更多