我是 Python 和 ML 的新手,我正在尝试使用 csv 文件并创建一个模型来预测主机响应的持续时间。
我所做的第一件事是使用 Pandas 解析 csv 文件中的日志,现在我有 csv 文件,其中的列按以下顺序排列并附有示例:
_time host duration
202 2020-09-26T10:56:33.630+0200 malcon 850
203 2020-09-26T10:56:33.630+0200 malcon2 878
703 2020-09-25T21:26:04.651+0200 malcon 973
我想做的第一件事是使用一些模型进行异常检测,但也许有一种更简单的方法来完成我想要的事情。我希望按时间戳获取每 3 分钟间隔高于 800 的持续时间值,并根据我一周内的数据预测这些值。
我从代码开始,该代码会发现持续时间值高于或等于 800,但不知道如何将它们与时间关联并定义间隔。
到目前为止我的代码是:
import pandas as pd
data = pd.read_csv("example_all.csv")
df = pd.DataFrame(data,columns=['_time','host','duration'])
high = (df.loc[df['duration'] >= 800])
print(high)
任何提示和建议将不胜感激!谢谢!
更新:
我正在尝试使用滚动功能,但我认为我没有正确理解它,并且我有点迷失其中。
正如此处所建议的,我使用 to_datetime 函数转换时间戳并按时间对数据进行排序。不幸的是,我找不到一种方法来指定持续时间高于 800 的 3 分钟时间间隔。
我的代码现在看起来像这样:
import pandas as pd
data = pd.read_csv("example_all.csv")
data["_time"] = pd.to_datetime(data["_time"], utc='true')
df = pd.DataFrame(data,columns=['_time','host','duration'])
df.sort_values('_time')
high = (df.loc[df['duration'] >= 800])
print(high)
输出:
_time host duration
202 2020-09-26 08:56:33.630000+00:00 malcon 850
203 2020-09-26 08:56:33.630000+00:00 malcon2 850
702 2020-09-25 19:26:05.573000+00:00 malcon 878
703 2020-09-25 19:26:04.651000+00:00 malcon 973
704 2020-09-25 19:26:03.667000+00:00 malcon 993
...
开心每一天1111
相关分类