我有4000条记录以及熊猫数据框,其中包含按时间戳记的各个事件的记录
Timestamp Date Holiday DayOfWeek
2017-01-01 02:25:00 2017-01-01 True Monday
2017-01-01 12:25:00 2017-01-01 True Monday
2017-01-02 03:45:00 2017-01-02 False Tuesday
2017-01-02 15:55:00 2017-01-02 False Tuesday
2017-02-03 01:01:00 2017-02-03 False Thursday
2017-02-03 4:25:00 2017-02-03 False Thursday
2017-04-03 4:25:00 2017-04-03 True Monday
我要尝试的是比较一周中的每一天每天的活动方式以及是否在假期。
因此,对于一周中的每一天,请比较该天是假日与该天不是假日的平均事件数。
events.groupby(['DayOfWeek', 'Holiday']).count()
请问我每个星期假日每天有多少活动
DayOfWeek Holiday Count
Monday True 50
False 34
Tuesday True 32
False 23
...
但是我不知道如何将其与每个单独日期的事件数结合起来
events.groupby('Date').count()
Date Count
01-01-2017 2
01-02-2017 2
01-03-2017 4
....
我想要一个类似的数据框
DayOfWeek Holiday Mean
Monday True 4.5
False 3.23
Tuesday True 2.1
False 3.2
...
然后从中理想地制作一个条形图。
但是无法弄清楚如何结合操作来创建我想要的东西。
答案 0 :(得分:1)
如果我理解正确,那么您要寻找的是
df.groupby(['Date', 'DayOfWeek', 'Holiday']).count().reset_index().groupby(['DayOfWeek', 'Holiday']).mean()['Timestamp']
首先,我们按date
分组(以及DayOfWeek
和Holiday
保留列-在任何单个日期它们都将始终相同),对每个日期的记录计数,重置索引,按DayOfWeek
和Holiday
分组并计算平均值。
对于您提供的结果的示例数据,
DayOfWeek Holiday
Monday True 1.5
Thursday False 2.0
Tuesday False 2.0