【问题标题】:Pandas Time Series Machine LearningPandas 时间序列机器学习
【发布时间】:2018-08-26 00:20:03
【问题描述】:

我有一个在 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 NaN
2018-03-14 23:00:02.815000-05:00    NaN NaN NaN NaN NaN 70.0    NaN NaN
2018-03-14 23:00:02.828000-05:00    NaN NaN NaN NaN NaN NaN 100.0   NaN
2018-03-14 23:00:02.842000-05:00    NaN NaN NaN NaN NaN NaN NaN 63.4788
2018-03-14 23:00:06.663000-05:00    NaN NaN 162.1682    NaN NaN NaN NaN NaN
2018-03-14 23:00:06.716000-05:00    NaN NaN NaN 29.5647 NaN NaN NaN NaN
2018-03-14 23:15:01.853000-05:00    NaN 0.002791    NaN NaN NaN NaN NaN NaN
2018-03-14 23:15:01.866000-05:00    81.6872 NaN NaN NaN NaN NaN NaN NaN
2018-03-14 23:15:02.871000-05:00    NaN NaN NaN NaN 90.8571 NaN NaN NaN
2018-03-14 23:15:02.884000-05:00    NaN NaN NaN NaN NaN 70.0    NaN NaN
2018-03-14 23:15:02.897000-05:00    NaN NaN NaN NaN NaN NaN 100.0   NaN
2018-03-14 23:15:02.910000-05:00    NaN NaN NaN NaN NaN NaN NaN 63.4151
2018-03-14 23:15:06.563000-05:00    NaN NaN 159.4302    NaN NaN NaN NaN NaN
2018-03-14 23:15:06.611000-05:00    NaN NaN NaN 29.4285 NaN NaN NaN NaN
2018-03-14 23:30:01.834000-05:00    NaN 0.002786    NaN NaN NaN NaN NaN NaN
2018-03-14 23:30:01.847000-05:00    81.8787 NaN NaN NaN NaN NaN NaN NaN
2018-03-14 23:30:02.845000-05:00    NaN NaN NaN NaN 90.3730 NaN NaN NaN
2018-03-14 23:30:02.858000-05:00    NaN NaN NaN NaN NaN 70.0    NaN NaN
2018-03-14 23:30:02.870000-05:00    NaN NaN NaN NaN NaN NaN 100.0   NaN
2018-03-14 23:30:02.883000-05:00    NaN NaN NaN NaN NaN NaN NaN 63.3431
2018-03-14 23:30:06.556000-05:00    NaN NaN 168.4906    NaN NaN NaN NaN NaN
2018-03-14 23:30:06.616000-05:00    NaN NaN NaN 29.1521 NaN NaN NaN NaN
2018-03-14 23:45:01.819000-05:00    NaN 0.002791    NaN NaN NaN NaN NaN NaN
2018-03-14 23:45:01.842000-05:00    82.0446 NaN NaN NaN NaN NaN NaN NaN
2018-03-14 23:45:02.816000-05:00    NaN NaN NaN NaN 90.5178 NaN NaN NaN
2018-03-14 23:45:02.829000-05:00    NaN NaN NaN NaN NaN 70.0    NaN NaN
2018-03-14 23:45:02.842000-05:00    NaN NaN NaN NaN NaN NaN 100.0   NaN
2018-03-14 23:45:02.858000-05:00    NaN NaN NaN NaN NaN NaN NaN 63.2676
2018-03-14 23:45:06.535000-05:00    NaN NaN 162.7722    NaN NaN NaN NaN NaN
2018-03-14 23:45:06.582000-05:00    NaN NaN NaN 28.3280 NaN NaN NaN NaN

这是 `fillna.' 之后的数据集。最终我想要的是一个每 15 分钟只有一个条目的训练数据集。有谁知道在 Python 中是否可以只取 15 分钟时间条目的第一行并丢弃其余部分?如果您在数据中注意到 23:00 有 6 个条目,23:15 有 8 个条目...我在下面链接的 Github 帐户上有 CSV 格式的数据,如果有人愿意,该文件名为 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.5461
2018-03-14 23:00:02.815000-05:00    81.6381 0.002791    165.7452    29.6716 91.1426 70.0    100.0   63.5461
2018-03-14 23:00:02.828000-05:00    81.6381 0.002791    165.7452    29.6716 91.1426 70.0    100.0   63.5461
2018-03-14 23:00:02.842000-05:00    81.6381 0.002791    165.7452    29.6716 91.1426 70.0    100.0   63.4788
2018-03-14 23:00:06.663000-05:00    81.6381 0.002791    162.1682    29.6716 91.1426 70.0    100.0   63.4788
2018-03-14 23:00:06.716000-05:00    81.6381 0.002791    162.1682    29.5647 91.1426 70.0    100.0   63.4788
2018-03-14 23:15:01.853000-05:00    81.6381 0.002791    162.1682    29.5647 91.1426 70.0    100.0   63.4788
2018-03-14 23:15:01.866000-05:00    81.6872 0.002791    162.1682    29.5647 91.1426 70.0    100.0   63.4788
2018-03-14 23:15:02.871000-05:00    81.6872 0.002791    162.1682    29.5647 90.8571 70.0    100.0   63.4788
2018-03-14 23:15:02.884000-05:00    81.6872 0.002791    162.1682    29.5647 90.8571 70.0    100.0   63.4788
2018-03-14 23:15:02.897000-05:00    81.6872 0.002791    162.1682    29.5647 90.8571 70.0    100.0   63.4788
2018-03-14 23:15:02.910000-05:00    81.6872 0.002791    162.1682    29.5647 90.8571 70.0    100.0   63.4151
2018-03-14 23:15:06.563000-05:00    81.6872 0.002791    159.4302    29.5647 90.8571 70.0    100.0   63.4151
2018-03-14 23:15:06.611000-05:00    81.6872 0.002791    159.4302    29.4285 90.8571 70.0    100.0   63.4151
2018-03-14 23:30:01.834000-05:00    81.6872 0.002786    159.4302    29.4285 90.8571 70.0    100.0   63.4151
2018-03-14 23:30:01.847000-05:00    81.8787 0.002786    159.4302    29.4285 90.8571 70.0    100.0   63.4151
2018-03-14 23:30:02.845000-05:00    81.8787 0.002786    159.4302    29.4285 90.3730 70.0    100.0   63.4151
2018-03-14 23:30:02.858000-05:00    81.8787 0.002786    159.4302    29.4285 90.3730 70.0    100.0   63.4151
2018-03-14 23:30:02.870000-05:00    81.8787 0.002786    159.4302    29.4285 90.3730 70.0    100.0   63.4151
2018-03-14 23:30:02.883000-05:00    81.8787 0.002786    159.4302    29.4285 90.3730 70.0    100.0   63.3431
2018-03-14 23:30:06.556000-05:00    81.8787 0.002786    168.4906    29.4285 90.3730 70.0    100.0   63.3431
2018-03-14 23:30:06.616000-05:00    81.8787 0.002786    168.4906    29.1521 90.3730 70.0    100.0   63.3431
2018-03-14 23:45:01.819000-05:00    81.8787 0.002791    168.4906    29.1521 90.3730 70.0    100.0   63.3431
2018-03-14 23:45:01.842000-05:00    82.0446 0.002791    168.4906    29.1521 90.3730 70.0    100.0   63.3431
2018-03-14 23:45:02.816000-05:00    82.0446 0.002791    168.4906    29.1521 90.5178 70.0    100.0   63.3431
2018-03-14 23:45:02.829000-05:00    82.0446 0.002791    168.4906    29.1521 90.5178 70.0    100.0   63.3431
2018-03-14 23:45:02.842000-05:00    82.0446 0.002791    168.4906    29.1521 90.5178 70.0    100.0   63.3431
2018-03-14 23:45:02.858000-05:00    82.0446 0.002791    168.4906    29.1521 90.5178 70.0    100.0   63.2676
2018-03-14 23:45:06.535000-05:00    82.0446 0.002791    162.7722    29.1521 90.5178 70.0    100.0   63.2676
2018-03-14 23:45:06.582000-05:00    82.0446 0.002791    162.7722    28.3280 90.5178 70.0    100.0   63.2676

https://github.com/bbartling/Data

【问题讨论】:

    标签: python pandas dataframe machine-learning time-series


    【解决方案1】:

    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  
    

    【讨论】:

      猜你喜欢
      • 2018-08-03
      • 1970-01-01
      • 2021-03-08
      • 2020-05-05
      • 1970-01-01
      • 1970-01-01
      • 2019-09-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多