【发布时间】:2020-07-24 10:05:05
【问题描述】:
我有一点问题应该很容易。我的 df 如下所示:
Index ZeitstempelSBA Status1 counting
2018-01-02 12:20:00 SR_OPEN 56
2018-01-02 12:21:00 SR_OPEN 57
2018-01-02 12:22:00 SR_OPEN 58
2018-01-02 12:23:00 SR_OPEN 59
2018-01-02 12:24:00 SR_OPEN 60
2018-01-02 12:25:00 2018-01-02 12:25:05 SR_CLEAR 0
2018-01-02 12:26:00 SR_CLEAR 1
2018-01-02 12:27:00 2018-01-02 12:27:13 SR_CLOSE 0
2018-01-02 12:28:00 SR_CLOSE 1
2018-01-02 12:29:00 SR_CLOSE 2
2018-01-02 12:30:00 SR_OPEN 0
2018-01-02 12:31:00 SR_OPEN 1
2018-01-02 12:32:00 SR_OPEN 2
2018-01-02 12:33:00 SR_OPEN 3
2018-01-02 12:34:00 SR_OPEN 4
2018-01-02 12:35:00 2018-01-02 12:35:11 SR_CLEAR 0
2018-01-02 12:36:00 SR_CLEAR 1
2018-01-02 12:37:00 2018-01-02 12:37:17 SR_CLOSE 0
2018-01-02 12:38:00 SR_CLOSE 1
2018-01-02 12:39:00 SR_CLOSE 2
我正在尝试计算整个数据帧中第一个 CLEAR 和第一个 CLOSE 间隔之间的时间差。我尝试使用,但它没有给我预期的结果:
begin = df.loc[(df.Status1 == 'SR_CLEAR')&(df.counting == 0),'ZeitstempelSBA']
end = df.loc[(df.Status1 == 'SR_CLOSE')&(df.counting == 0),'ZeitstempelSBA']
end-begin
输出应该是每个 SR_CLEAR(计数 == 0)和 SR_CLOSE(计数 == 0)情况之间的时间增量的数组/列表。
【问题讨论】:
-
您的问题很简单,您的数据框中没有
SR-CLEAR或SR_CLOSE,因此您的布尔值永远不会等于true。 -
另外,
df['counting']在示例中从不等于 0,这是故意的吗? -
对不起,没有。这不是故意的。我改了....