我最近开始使用时间序列数据,我想查找超过定义的阈值150的列中值的开始时间和结束时间。
Datetime Value
0 11/30/2022 0:00 100
1 11/30/2022 0:01 110
2 11/30/2022 0:02 105
3 11/30/2022 0:03 105
4 11/30/2022 0:04 155
5 11/30/2022 0:05 160
6 11/30/2022 0:06 160
7 11/30/2022 0:07 160
8 11/30/2022 0:08 160
9 11/30/2022 0:09 165
10 11/30/2022 0:10 165
11 11/30/2022 0:11 160
12 11/30/2022 0:12 160
13 11/30/2022 0:13 150
14 11/30/2022 0:14 120
15 11/30/2022 0:15 110
16 11/30/2022 0:16 115
17 11/30/2022 0:17 115
18 11/30/2022 0:18 130
19 11/30/2022 0:19 145
20 11/30/2022 0:20 150
21 11/30/2022 0:21 155
22 11/30/2022 0:22 155
23 11/30/2022 0:23 155
24 11/30/2022 0:24 155
25 11/30/2022 0:25 155
26 11/30/2022 0:26 140
27 11/30/2022 0:27 130
28 11/30/2022 0:28 120
我希望得到一个 Dataframe 形式的输出,该 Dataframe 具有多个开始和结束时间沿着以秒为单位的持续时间:
Start_Time End_Time Duration
0 2022-11-30 00:04:00 2022-11-30 00:13:00 540.0
1 2022-11-30 00:20:00 2022-11-30 00:25:00 300.0
我可以用df['Duration'] = (df['End_Time']-df['Start_Time']).dt.total_seconds()
计算持续时间,但是我不能得到那些开始和结束时间。有人能帮我吗?
2条答案
按热度按时间vyu0f0g11#
首先,创建 Dataframe :
接下来,让我们筛选出您想要的值:
然后,让我们通过
shift
对开始列和结束列进行合并,然后检查它们是否彼此对齐:cig3rfwq2#
代码
输出:
更改输出的
index
和columns
实验结果: