python - 给定一个时间戳列,我怎样才能间隔两个小时并显示在一个新列中?
问题描述
我有一个时间戳列,如:
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.
如果有人有其他方法。请告诉我。
解决方案
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。(
or)
意思是包容性和[
or]
是排斥性的。
推荐阅读
- python - 在训练 word2vec 模型 python 时,必须提供 corpus_file 或 corpus_iterable 值之一
- python - MultiplicativeLR 和 LambdaLR 的区别
- flutter - 颤振相机捏缩放
- classification - 如何使用 sklean 在 MLPClassifier 中绘制训练和测试数据的准确度和损失曲线?
- babeljs - webpacker babel 垃圾邮件清除消息不够清晰
- reactjs - Nextjs - 访问全局上下文值
- elasticsearch - 如何恢复弹性搜索中被 PUT 请求覆盖的索引模板的先前值?
- osgi - 是否有任何其他配置可以从 maven-bundle-plugin 版本 2.5.3 迁移到 3.2.0
- python - 如何在pyvips中分配图像组件?
- android - 每次更新视图时,Android 垂直滚动视图会自动移动到顶部