Python Pandas-按多列分组并比较计数的平均值
我有一个4000多条记录的熊猫数据框,其中记录了各个事件的时间戳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:
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