Python Pandas-按多列分组并比较计数的平均值

Python Pandas-按多列分组并比较计数的平均值,python,pandas,data-science,Python,Pandas,Data Science,我有一个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:

我有一个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
...
然后理想地用它做一个条形图


但我不知道如何组合这些操作来创建我首先想要的

如果我理解正确,你要找的应该是

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