我有带有 ID、时间戳和状态的客户记录。
ID, TS, STATUS
1 10 GOOD
1 20 GOOD
1 25 BAD
1 30 BAD
1 50 BAD
1 600 GOOD
2 40 GOOD
.. ...
我正在尝试计算每个客户在连续 BAD 状态中花费的时间(让我们想象上面的顺序是正确的)。因此,对于客户 id=1,30-25,50-30,600-50 总共花费了 575 秒处于 BAD 状态。
在 Pandas 中这样做的方法是什么?如果我在 TS 上计算 .diff() ,那会给我带来差异,但我如何才能将 1) 与客户 2) 某些状态“阻止”该客户?
样本数据:
df = pandas.DataFrame({'ID':[1,1,1,1,1,1,2],
'TS':[10,20,25,30,50,600,40],
'Status':['G','G','B','B','B','G','G']
},
columns=['ID','TS','Status'])
谢谢,