按小时分组时如何概括分类数据?
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 之间选择许多值以上是关于按小时分组时如何概括分类数据?的主要内容,如果未能解决你的问题,请参考以下文章