我有一个我在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我想看看它。
数据框也被过滤了15分钟时间戳df[df.index.minute.isin([0,15,30,45])]
,以确保只有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
答案 0 :(得分:0)
像groupby
head
这样的内容会返回第一行
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