【问题标题】:Creating multiple subsets of a timeseries pandas dataframe by weekly intervals按每周间隔创建时间序列熊猫数据框的多个子集
【发布时间】:2020-10-12 22:08:25
【问题描述】:

python 新手。我有一个带有日期时间列的数据框(本质上是一个巨大的时间序列数据)。我基本上想将其划分为多个子集,其中每个子集数据帧包含一周的数据(从第一个时间戳开始)。我一直在尝试使用 groupBy 和 Grouper 但它返回的元组本身不包含一周的数据。此外,Grouper (Erstwhile TimeGrouper) 文档对此也不是很清楚。

这是我尝试过的。有更好的想法或方法吗?

grouped = uema_label_format.groupby(pd.Grouper(key='HEADER_START_TIME', freq='W'))

【问题讨论】:

    标签: python pandas time-series pandas-groupby


    【解决方案1】:

    如果您的数据集真的很大,则值得将这项工作外部化到时间序列数据库中,然后查询它以获得您感兴趣的每周。这些结果可以加载到 pandas 中,但数据库会处理举重。例如,在 QuestDB 中,您可以按如下方式获取当前周

    select * from yourTable where timestamp = '2020-06-22;7d'
    

    虽然这将返回一周的数据,但您可以对其进行迭代以快速获取各个对象,因为结果是即时的。此外,您可以在事后轻松更改采样间隔,例如使用1M 更改为每月一次。这仍然是一个即时响应。

    您可以尝试here,以该查询为例,从 16 亿行纽约市出租车数据集中获取一周价值的数据(大约 300 万行)。

    select * from trips where pickup_datetime = '2015-08-01;7d';
    

    如果这能解决您的用例,这里有一个关于如何将查询结果从 QuestDB 获取到 pandas here 的教程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-24
      • 1970-01-01
      • 1970-01-01
      • 2019-11-17
      • 2023-01-12
      • 2019-06-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多