我是Python和机器学习的新手,正在尝试处理csv文件并创建一个模型来预测主机响应的持续时间。
首先,我使用Pandas解析了csv文件中的日志,现在我有一个csv文件,其中包含以下顺序的列和示例:
_time host duration202 2020-09-26T10:56:33.630+0200 malcon 850203 2020-09-26T10:56:33.630+0200 malcon2 878703 2020-09-25T21:26:04.651+0200 malcon 973
最初我想使用一些异常检测模型,但可能有更简单的方法来实现我的目标。我希望在3分钟的时间间隔内获取持续时间值高于800的数据,并根据我一周的数据来预测这些值。
我开始编写代码来查找持续时间值大于或等于800的记录,但不知道如何将它们与时间关联并定义时间间隔。
到目前为止,我的代码是这样的:
任何提示和建议都将不胜感激!谢谢!
更新:
我尝试使用rolling函数,但我想我没有正确理解它,并且在使用中有点迷失了方向。
正如这里建议的,我使用to_datetime函数转换时间戳并按时间排序数据。不幸的是,我找不到一种方法来指定持续时间高于800的3分钟时间间隔。
我的代码现在看起来像这样:
输出:
_time host duration202 2020-09-26 08:56:33.630000+00:00 malcon 850203 2020-09-26 08:56:33.630000+00:00 malcon2 850702 2020-09-25 19:26:05.573000+00:00 malcon 878703 2020-09-25 19:26:04.651000+00:00 malcon 973704 2020-09-25 19:26:03.667000+00:00 malcon 993...
回答:
如果你正在寻找在前3分钟内没有记录到任何小于800的值,而值大于或等于800的任何记录,这种方法会有效:
请注意,对于日期时间偏移窗口,center
窗口选项尚未实现,因此检查前3分钟(或根据顺序的后3分钟)是这种方法的唯一选择。如果你不介意对数据框进行两次排序,你可以结合前后结果来检查样本的两侧。