如何按周分组和统计事件?

时间:2015-03-25 15:42:48

标签: python

我有一个词典列表。每个字典代表一个事件,并具有以下形式:

event1 = {'name': 'event1', 'date':'2015-03-25', 'location':'stackexchange'}

如何将事件分组到每个日历周(从星期一或星期日开始),并计算每个日历周的事件数量?例如。输出可以是子列表的列表,每个子列表代表相应周内的事件列表。

在我的代码中,每个'日期' value可以表示为字符串或datetime.date对象。我在datetime模块和calendar模块中搜索了标准库,但没有找到进行分组的函数。

1 个答案:

答案 0 :(得分:2)

您必须根据您可以从该日期获得的信息进行分组。如果您存储datetime.date()个对象,则可以使用datetime.date.isocalendar() method按年份+周数对字典进行分组:

grouped = {}
for event in list_of_events:
    key = tuple(event['date'].isocalendar()[:1])
    grouped.setdefault(key, []).append(event)

然后,您最终得到一个字典,其中包含按(year, week)元组分组的事件。