按每周间隔创建时间序列熊猫数据帧的多个子集

时间:2020-06-22 22:49:59

标签: python pandas time-series pandas-groupby

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

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

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

1 个答案:

答案 0 :(得分:1)

如果您的数据集确实很大,则值得将这项工作外部化到一个时间序列数据库,然后对其进行查询以获取您感兴趣的每个星期。然后可以将这些结果加载到熊猫中,但是数据库可以处理繁重的工作。例如,在QuestDB中,您可以得到如下所示的当前星期

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

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

您可以使用此查询作为示例来尝试使用此here,以从16亿行的纽约出租车数据中获取一个星期的数据(大约3M行)。

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

如果这可以解决您的用例,则有一个教程,介绍如何将查询结果从QuestDB获取到熊猫here