给定一个时间戳列,我如何间隔两个小时并在新列中显示?

时间:2019-06-28 10:30:34

标签: python pandas datetime timestamp

我有一个时间戳列,如:

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.

如果有人有其他方法。请让我知道。

1 个答案:

答案 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)

enter image description here

  • 顺便说一句,(7-9] = 07:00-08:59。 ()表示包含,而[]表示排除。