python - group timestamps by 20 second intervals -


from datetime import datetime, timedelta d = datetime.now() data = [d + timedelta(minutes=i) in range(100)]  # prepare , group data itertools import groupby  def get_key(d):     # group 30 minutes     k = d + timedelta(minutes=-(d.minute % 20))     return datetime(k.year, k.month, k.day, k.hour, k.minute, 0)  g = groupby(sorted(data), key=get_key)  # print data key, items in g:     print(key)     item in items:         print('-', item) 

i have large dataset of timestamps, , want group 20 second windows. above code works in grouping in minutes, cannot work grouping in 20 seconds

the group needs have seconds field:

code:

import datetime dt  def get_key(d):     # group 20 seconds     k = d - dt.timedelta(seconds=d.second % 20)     return dt.datetime(k.year, k.month, k.day, k.hour, k.minute, k.second) 

test code:

d = dt.datetime.now() data = [d + dt.timedelta(seconds=i*5) in range(20)]  # prepare , group data import itertools  g = it.groupby(sorted(data), key=get_key)  # print data key, items in g:     print(key)     item in items:         print('-', item) 

results:

2017-04-07 17:51:00 - 2017-04-07 17:51:16.372000 2017-04-07 17:51:20 - 2017-04-07 17:51:21.372000 - 2017-04-07 17:51:26.372000 - 2017-04-07 17:51:31.372000 - 2017-04-07 17:51:36.372000 2017-04-07 17:51:40 - 2017-04-07 17:51:41.372000 - 2017-04-07 17:51:46.372000 - 2017-04-07 17:51:51.372000 - 2017-04-07 17:51:56.372000 2017-04-07 17:52:00 - 2017-04-07 17:52:01.372000 - 2017-04-07 17:52:06.372000 - 2017-04-07 17:52:11.372000 - 2017-04-07 17:52:16.372000 2017-04-07 17:52:20 - 2017-04-07 17:52:21.372000 - 2017-04-07 17:52:26.372000 - 2017-04-07 17:52:31.372000 - 2017-04-07 17:52:36.372000 2017-04-07 17:52:40 - 2017-04-07 17:52:41.372000 - 2017-04-07 17:52:46.372000 - 2017-04-07 17:52:51.372000 

Comments

Popular posts from this blog

How to understand 2 main() functions after using uftrace to profile the C++ program? -

c# - Update a combobox from a presenter (MVP) -

How to put a lock and transaction on table using spring 4 or above using jdbcTemplate and annotations like @Transactional? -