如何每隔10分钟中断一次TimeSeries
数据,这是我的示例数据,在以下数据中,如果我首先看到没有10分钟的数据,因为在第三行之后它会跳转到00:39:00
分钟,因此它将从0
开始在这里重新开始计数,我想将true / false值放在最后计数10分钟的地方。
我尝试了一种技术x["DateTime"].diff() > pd.Timedelta(minutes=10)
,但是它发现了数据中的00:10:00时间戳,然后将其破坏了,这不是我的要求。因为pd.Timedelta(minutes=10)
给出结果00:10:00
我该怎么做?希望我解释清楚
DateTime ValA
2011-01-01 00:01:00 0.551815
2011-01-01 00:01:59 0.542464
2011-01-01 00:03:00 0.520525
2011-01-03 06:39:00 1.225518
2011-01-03 06:40:00 2.241443
2011-01-03 06:40:59 3.148734
2011-01-03 06:42:00 5.361565
2011-01-03 06:43:00 6.878603
2011-01-03 06:43:59 7.127448
2011-01-03 06:45:00 8.130982
2011-01-03 06:46:00 8.188750
2011-01-03 06:46:59 8.267185
2011-01-03 06:48:00 8.204753
2011-01-03 06:49:00 8.121145
2011-01-03 06:49:59 8.129115
2011-01-03 06:51:00 8.160426
2011-01-03 06:52:00 8.301057
2011-01-03 06:53:00 8.342608
2011-01-03 06:53:59 8.390675
2011-01-03 06:55:00 8.063992
2011-01-03 06:56:00 7.396055
2011-01-03 06:56:59 6.771710
2011-01-03 06:58:00 5.295999
2011-01-03 06:59:00 4.210010
2011-01-03 06:59:59 3.689164
2011-01-03 07:01:00 2.963554
2011-01-03 07:02:00 2.873527
2011-01-03 07:02:59 2.885474
2011-01-03 07:04:00 2.394660
2011-01-03 07:05:00 2.603989
所需的输出应为
DateTime ValA Flag
2011-01-01 00:01:00 0.551815 False
2011-01-01 00:01:59 0.542464 False
2011-01-01 00:03:00 0.520525 False
2011-01-03 06:39:00 1.225518 True
2011-01-03 06:40:00 2.241443 False
2011-01-03 06:40:59 3.148734 False
2011-01-03 06:42:00 5.361565 False
2011-01-03 06:43:00 6.878603 False
2011-01-03 06:43:59 7.127448 False
2011-01-03 06:45:00 8.130982 False
2011-01-03 06:46:00 8.188750 False
2011-01-03 06:46:59 8.267185 False
2011-01-03 06:48:00 8.204753 False
2011-01-03 06:49:00 8.121145 False
2011-01-03 06:49:59 8.129115 True
2011-01-03 06:51:00 8.160426 False
2011-01-03 06:52:00 8.301057 False
2011-01-03 06:53:00 8.342608 False
2011-01-03 06:53:59 8.390675 False
这应该是输出
答案 0 :(得分:0)
嗯,这并不完美,但是它在10分钟的标记后给了True
。取决于您从哪里开始计数。
by_seconds = df.resample('1S')
by_seconds['flag'] = by_seconds.index.minute%10==0
DateTime ValA flag
2011-01-01 00:01:00 0.5518149999999999 False
2011-01-01 00:01:01 False
2011-01-01 00:01:02 False
2011-01-01 00:01:03 False
2011-01-01 00:01:04 False
这只是意味着您的ValA
在没有观察到的地方会有NaN
。
答案 1 :(得分:0)
好了,我找到了解决方案,它可以按照我希望使用floor()
和diff()
函数来实现答案的方式工作,
我尝试了df.DateTime.dt.floor('10T').diff()
我使用了这段代码,它给出了10个薄荷糖数据的所有细目。