我希望可以按一天中的小时数统计事件的数量。我按照说明here提出了一个计数列表,但也想包括零事件的小时数
以下是一些示例数据:
0 2017-10-06 13:21:37 foo
1 2017-10-06 13:21:39 foo
2 2017-10-06 13:21:42 foo
这是我的代码:
counts = df.groupby([pd.Grouper(key='LocalDateTime',freq='H'),df.foo]).size().reset_index(name='count')
我的输出如下:
0 2017-10-06 12:00:00 foo 2
1 2017-10-06 14:00:00 foo 2
我希望它看起来像这样
0 2017-10-06 12:00:00 foo 2
1 2017-10-06 13:00:00 foo 0
2 2017-10-06 14:00:00 foo 2
我检查了Grouper文档,但没有看到有关如何填写缺勤时间的任何信息。最好的方法是什么?
谢谢您的帮助!
答案 0 :(得分:0)
如果您确实需要缺少的时间戳,这是使用resample
但应用Apply的一种方法
df.groupby('foo').\
apply(lambda x : x.set_index('LocalDateTime').resample('H').count())['foo'].\
reset_index(name='count')