【发布时间】:2015-11-07 19:47:49
【问题描述】:
鉴于以下 pandas DataFrame:
In [115]: times = pd.to_datetime(pd.Series(['2014-08-25 21:00:00','2014-08-25 21:04:00',
'2014-08-25 22:07:00','2014-08-25 22:09:00']))
locations = ['HK', 'LDN', 'LDN', 'LDN']
event = ['foo', 'bar', 'baz', 'qux']
df = pd.DataFrame({'Location': locations,
'Event': event}, index=times)
df
Out[115]:
Event Location
2014-08-25 21:00:00 foo HK
2014-08-25 21:04:00 bar LDN
2014-08-25 22:07:00 baz LDN
2014-08-25 22:09:00 qux LDN
我想重新采样数据以每小时按计数聚合它,同时按位置分组以生成如下所示的数据框:
Out[115]:
HK LDN
2014-08-25 21:00:00 1 1
2014-08-25 22:00:00 0 2
我尝试了 resample() 和 groupby() 的各种组合,但没有运气。我该怎么办?
【问题讨论】:
-
对于那些在 2017+ 年提出这个问题的人,
pd.TimeGrouper已被弃用。 See this answer 获取最新语法。
标签: python pandas group-by time-series