【问题标题】:Pandas Grouper with zero values零值的熊猫石斑鱼
【发布时间】:2019-08-07 22:08:04
【问题描述】:

我希望按一天中的时间计算事件的数量。我按照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 文档,但没有看到有关如何填写缺失时间的任何信息。最好的方法是什么?

感谢您的帮助!

【问题讨论】:

  • 你能给我们看一些示例数据吗?
  • 绝对!对此感到抱歉 - 我应该在开始时将其包括在内

标签: python pandas


【解决方案1】:

如果您确实需要缺少的时间戳,这是使用 resample 的一种方法,但使用 apply

df.groupby('foo').\
     apply(lambda x : x.set_index('LocalDateTime').resample('H').count())['foo'].\
       reset_index(name='count')

【讨论】:

  • 这成功了!非常感谢。我很好奇 Grouper 是否支持它,但目前这主要是学术性的
猜你喜欢
  • 1970-01-01
  • 2017-11-15
  • 2020-01-05
  • 2018-06-25
  • 2021-08-03
  • 2012-09-06
  • 1970-01-01
  • 2013-10-29
  • 1970-01-01
相关资源
最近更新 更多