按小时分组时如何概括分类数据?

Posted

技术标签:

【中文标题】按小时分组时如何概括分类数据?【英文标题】:How to generalise categorical data when grouping by hour? 【发布时间】:2020-04-19 00:44:25 【问题描述】:

我有一个如下所示的数据集。我有日期时间列作为索引,另一列有分类变量。 type 是一个分类变量。

start_time          type

2019-12-14 09:37:05 R
2019-12-14 09:40:05 D       
2019-12-14 10:06:25 C       
2019-12-14 10:44:21 C       
2019-12-14 10:50:21 R
2019-12-14 11:06:38 D       
2019-12-14 11:29:04 R   
2019-12-14 11:29:04 R   

现在,我想每隔一小时重新采样一次数据。我希望重新采样的数据如下所示

start_time              type

2019-12-14 09:00:00     R       
2019-12-14 10:00:00     C               
2019-12-14 11:00:00     D       

我应该在这里实现什么逻辑来选择每小时 type 的值应该是什么?一种方法是取一小时内重复值的最大次数。例如,在 10:00:00,如果 type C 出现 3 次,D 出现 1 次,R 出现 2 次。我可以将 C 分配给时间戳 10:00:00。

还有什么其他方法可以处理这种情况?我的最终目标是预测接下来几个小时的类型序列,如果 RRCD 是前一个序列,那么接下来几个小时的下一个序列是什么?

谢谢

【问题讨论】:

为什么你首先需要R记录(09:37:05)而不是11:29:04?您能否添加更多记录 + 预期的 dataframe 我不需要第一个 R 记录。这只是我给出的例子。我在我的问题中添加了更多记录。希望你能弄明白 【参考方案1】:

您可以构建一个分类器来进行预测!您可以创建一个数据框 X,其列对应于 Day、Month、Year、Hour、DayOfWeek,并使用简单的东西(如随机福雷斯特)进行预测。

from sklearn.ensemble import RandomForestClassifier

model = RandomForestClassifier()
model.fit(X)
model.predict(DataYouWantToMakePredictionsOn)

【讨论】:

当我将它重新采样到 Hour 时,我为那个小时给出的 type 的值是多少。问题是如果我将它重新采样到分钟间隔,我会得到很多 NaN 值。如果我将其重新采样为小时间隔,我可以在 R、C、D 之间选择许多值

以上是关于按小时分组时如何概括分类数据?的主要内容,如果未能解决你的问题,请参考以下文章

使用多级分组报表展现分类数据

drupal 7 - 按分类术语分组

按分类术语对分组节点进行排序

Drupal 7 视图 - 按内容类型和分类术语分组

如何在网格/表格中显示分组/分类缩略图,如布局

如何按小时对 HKStatistics 进行分组?