在Python中按时间范围对数据进行分组

时间:2020-07-05 21:58:09

标签: python python-3.x mongodb

我正在遍历一堆由Python中的MongoDB查询获得的字典:

for x in DB[COL].find({'datetime': {'$gte': StartTime}}):

哪个给了我这样的结果列表:

{'datetime': 2020-07-05 19:21", 'data': [...]}
{'datetime': 2020-07-05 19:25", 'data': [...]}
{'datetime': 2020-07-05 19:35", 'data': [...]}

我需要每30分钟订购一次该记录,因此我需要更改datetime,以便输出如下:

{'datetime': 2020-07-05 19:30", 'data': [...]} //because 19:21 -> 19:30
{'datetime': 2020-07-05 19:30", 'data': [...]} //because 19:25 -> 19:30
{'datetime': 2020-07-05 20:00", 'data': [...]} //because 19:35 -> 20:00

如何使用Python做到这一点?

1 个答案:

答案 0 :(得分:0)

这是我的方法。我会列出一份文档,并根据他们的会议记录进行更改;

for doc in docs:
    date = doc['datetime']
    if date.minute > 30:
        doc['datetime'] = dt.datetime(date.year, date.month, date.day, date.hour + 1, 0)
    else:
        doc['datetime'] = dt.datetime(date.year, date.month, date.day, date.hour, 0)

从那里您可以只使用pandas dataframe .groupby方法和按日期时间分组。 这看起来很丑陋,您当然可以清除它,但是应该可以。

相关问题