我有一个像这样的pandas数据框:
我需要获取第一个通过事件到该序列下第一次失败的时间。例如,
然后我需要计算下一个序列并将其添加到新列中的值中。即
这是df最终应该的样子:
状态 | 时间戳 |
---|---|
通过 | 2021-11-25 15:15:36 |
失败 | 2021-11-25 00:46:23 |
失败 | 2021-11-25 00:16:03 |
失败 | 2021-11-24 23:45:08 |
通过 | 2021-11-25 15:15:13 |
失败 | 2021-11-25 00:46:47 |
失败 | 2021-11-25 00:16:09 |
失败 | 2021-11-24 23:44:59 |
row 0
和row 3
之间的差异,并将其添加到新的列中。然后我需要计算下一个序列并将其添加到新列中的值中。即
row 4
和row 7
之间的差异,并将差异添加到前一个时间,以获取它总共失败了多长时间。这是df最终应该的样子:
状态 | 时间戳 | 停机时间 | 总停机时间 |
---|---|---|---|
通过 | 2021-11-25 15:15:36 | 15:30:38 | 31:00:52 |
失败 | 2021-11-25 00:46:23 | 15:30:38 | 31:00:52 |
失败 | 2021-11-25 00:16:03 | 15:30:38 | 31:00:52 |
失败 | 2021-11-24 23:45:08 | 15:30:38 | 31:00:52 |
通过 | 2021-11-25 15:15:13 | 15:30:14 | 31:00:52 |
失败 | 2021-11-25 00:46:47 | 15:30:14 | 31:00:52 |
失败 | 2021-11-25 00:16:09 | 15:30:14 | 31:00:52 |
失败 | 2021-11-24 23:44:59 | 15:30:14 | 31:00:52 |
请注意,这是示例数据,通过和失败事件的索引每次都不同。
这是我的代码
import pandas as pd
data = {'Status': ['Passing','Failing','Failing','Failing','Passing','Failing','Failing','Failing'],
'TimeStamp': ['2021-11-25 15:15:36','2021-11-25 00:46:23','2021-11-25 00:16:03','2021-11-24 23:45:08','2021-11-25 15:15:13','2021-11-25 00:46:47','2021-11-25 00:16:09','2021-11-24 23:44:59']}
df = pd.DataFrame(data)
我是自学 Python 和 pandas 的,不知道如何实现我需要的功能。感激不尽,希望能得到帮助。