【发布时间】:2018-07-11 13:08:22
【问题描述】:
我正在尝试根据日期对值进行分类。数据框看起来像这样
type event_date
43851 MEDIUM 2017-10-09 13:28:33
43852 HIGH 2017-10-09 14:19:49
43853 HIGH 2017-10-09 14:23:25
43854 HIGH 2017-10-09 14:24:18
43855 MEDIUM 2017-10-09 14:25:31
43856 LOW 2017-10-09 14:25:33
43857 MEDIUM 2017-10-09 14:25:33
43858 LOW 2017-10-09 14:25:38
我想从特定日期开始分箱,每半小时计算一次 type 的出现次数。我试过了
grouper = df.groupby([pd.Grouper(freq='30T',key='event_date'), 'type'])
grouper['other_col'].count()
这几乎完全符合我的要求
event_date type
2017-10-09 13:00:00 MEDIUM 1
2017-10-09 14:00:00 HIGH 3
LOW 2
MEDIUM 2
我愿意
- 从指定的小时开始(在我的情况下,它将是第一次出现
LOW- 12 小时 = 02:25:33),而不是向下舍入的第一个可用小时。 - 同时显示空白区间
【问题讨论】:
-
您可以使用 resample 命令显示空区间。例如。
df.resample('hour', on='other_col').sum().fillna(0)
标签: python pandas group-by binning