Pandas 时间序列机器学习

我使用Pandas创建了一个训练数据集,打算用于回归机器学习算法。

在创建Pandas数据框时,数据是以不同的时间间隔记录的,我需要对Pandas数据框执行.fillna(method = 'ffill').fillna(method = 'bfill')操作。这是在执行fillna之前的数据集样子

2018-03-14 23:00:02.801000-05:00    NaN NaN NaN NaN 91.1426 NaN NaN NaN2018-03-14 23:00:02.815000-05:00    NaN NaN NaN NaN NaN 70.0    NaN NaN2018-03-14 23:00:02.828000-05:00    NaN NaN NaN NaN NaN NaN 100.0   NaN2018-03-14 23:00:02.842000-05:00    NaN NaN NaN NaN NaN NaN NaN 63.47882018-03-14 23:00:06.663000-05:00    NaN NaN 162.1682    NaN NaN NaN NaN NaN2018-03-14 23:00:06.716000-05:00    NaN NaN NaN 29.5647 NaN NaN NaN NaN2018-03-14 23:15:01.853000-05:00    NaN 0.002791    NaN NaN NaN NaN NaN NaN2018-03-14 23:15:01.866000-05:00    81.6872 NaN NaN NaN NaN NaN NaN NaN2018-03-14 23:15:02.871000-05:00    NaN NaN NaN NaN 90.8571 NaN NaN NaN2018-03-14 23:15:02.884000-05:00    NaN NaN NaN NaN NaN 70.0    NaN NaN2018-03-14 23:15:02.897000-05:00    NaN NaN NaN NaN NaN NaN 100.0   NaN2018-03-14 23:15:02.910000-05:00    NaN NaN NaN NaN NaN NaN NaN 63.41512018-03-14 23:15:06.563000-05:00    NaN NaN 159.4302    NaN NaN NaN NaN NaN2018-03-14 23:15:06.611000-05:00    NaN NaN NaN 29.4285 NaN NaN NaN NaN2018-03-14 23:30:01.834000-05:00    NaN 0.002786    NaN NaN NaN NaN NaN NaN2018-03-14 23:30:01.847000-05:00    81.8787 NaN NaN NaN NaN NaN NaN NaN2018-03-14 23:30:02.845000-05:00    NaN NaN NaN NaN 90.3730 NaN NaN NaN2018-03-14 23:30:02.858000-05:00    NaN NaN NaN NaN NaN 70.0    NaN NaN2018-03-14 23:30:02.870000-05:00    NaN NaN NaN NaN NaN NaN 100.0   NaN2018-03-14 23:30:02.883000-05:00    NaN NaN NaN NaN NaN NaN NaN 63.34312018-03-14 23:30:06.556000-05:00    NaN NaN 168.4906    NaN NaN NaN NaN NaN2018-03-14 23:30:06.616000-05:00    NaN NaN NaN 29.1521 NaN NaN NaN NaN2018-03-14 23:45:01.819000-05:00    NaN 0.002791    NaN NaN NaN NaN NaN NaN2018-03-14 23:45:01.842000-05:00    82.0446 NaN NaN NaN NaN NaN NaN NaN2018-03-14 23:45:02.816000-05:00    NaN NaN NaN NaN 90.5178 NaN NaN NaN2018-03-14 23:45:02.829000-05:00    NaN NaN NaN NaN NaN 70.0    NaN NaN2018-03-14 23:45:02.842000-05:00    NaN NaN NaN NaN NaN NaN 100.0   NaN2018-03-14 23:45:02.858000-05:00    NaN NaN NaN NaN NaN NaN NaN 63.26762018-03-14 23:45:06.535000-05:00    NaN NaN 162.7722    NaN NaN NaN NaN NaN2018-03-14 23:45:06.582000-05:00    NaN NaN NaN 28.3280 NaN NaN NaN NaN

这是执行fillna后的数据集。最终我想要的是每15分钟只有一个条目的训练数据集。是否有人知道在Python中是否可以只取15分钟时间条目的第一行并丢弃其余部分?如果你注意到数据中23:00有六个条目,23:15有八个条目…我已经将数据以CSV格式上传到下面的Github账户,文件名为McheLrn.csv,如果有人想查看的话。

数据框还使用df[df.index.minute.isin([0,15,30,45])]过滤了15分钟的时间戳,以确保只有15分钟的时间间隔

2018-03-14 23:00:02.801000-05:00    81.6381 0.002791    165.7452    29.6716 91.1426 70.0    100.0   63.54612018-03-14 23:00:02.815000-05:00    81.6381 0.002791    165.7452    29.6716 91.1426 70.0    100.0   63.54612018-03-14 23:00:02.828000-05:00    81.6381 0.002791    165.7452    29.6716 91.1426 70.0    100.0   63.54612018-03-14 23:00:02.842000-05:00    81.6381 0.002791    165.7452    29.6716 91.1426 70.0    100.0   63.47882018-03-14 23:00:06.663000-05:00    81.6381 0.002791    162.1682    29.6716 91.1426 70.0    100.0   63.47882018-03-14 23:00:06.716000-05:00    81.6381 0.002791    162.1682    29.5647 91.1426 70.0    100.0   63.4788

https://github.com/bbartling/Data


回答:

使用groupbyhead这样的方法,可以返回第一行

df.groupby(df[1].str[:16]).head(1)Out[426]:                                   1        3         4         5        6   \0   2018-03-14 23:00:02.815000-05:00  81.6381  0.002791  165.7452  29.6716   5   2018-03-14 23:15:01.853000-05:00  81.6381  0.002791  162.1682  29.5647   13  2018-03-14 23:30:01.834000-05:00  81.6872  0.002786  159.4302  29.4285   21  2018-03-14 23:45:01.819000-05:00  81.8787  0.002791  168.4906  29.1521            7     8      9        10  0   91.1426  70.0  100.0  63.5461  5   91.1426  70.0  100.0  63.4788  13  90.8571  70.0  100.0  63.4151  21  90.3730  70.0  100.0  63.3431  

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注