我有一个时间戳列,如:
2018-03-24 11:23:48,
2017-06-23 16:53:16,
2017-06-23 15:24:37
范围是从上午7点到下午5点,我要创建一列,告诉时间戳记落在哪个时段(从上午7点开始的2小时时段)内。
我尝试了各种功能,例如Pandas。石斑鱼,但导致错误。
department_wise.groupby(pd.TimeGrouper(freq='2H')).count()
但它说
TypeError:仅与DatetimeIndex,TimedeltaIndex或 PeriodIndex,但有一个'Int64Index'实例
我想要的实际结果是:
2018-03-24 11:23:48 this should fall into 9:01-11:00 slot
2017-06-23 15:24:37 this should fall into 15:01-17:00 slot. etc.
如果有人有其他方法。请让我知道。
答案 0 :(得分:0)
dt = ['2018-03-24 11:23:48',
'2017-06-23 16:53:16',
'2017-06-23 15:24:37']
df = pd.DataFrame({'date': dt}, dtype='datetime64[ns]')
bins=[x for x in range(7, 18, 2)]
labels=['(7-9]', '(9-11]', '(11-13]', '(13-15]', '(15-17]']
df['window'] = pd.cut(x=df.date.dt.hour, bins=bins, include_lowest=True, labels=labels)
(7-9]
= 07:00-08:59。 (
或)
表示包含,而[
或]
表示排除。