我有一个数据帧,每行都包含有关事件的信息以及事件是否成功。我想计算非成功事件之间的增量,我知道如何计算字段之间的差异,但不知道在使用过滤器时。在
我的数据帧具有以下结构:
Timestamp Status
0 2012-01-01 OK
1 2012-01-02 OK
2 2012-01-03 FAIL
3 2012-01-05 OK
4 2012-01-06 OK
5 2012-01-07 FAIL
我要计算每行的时间,直到下一行失败,所以如下所示:
^{pr2}$我试过了:
df['days_until_next_failure'] = df.Timestamp - df[(df.Status == '1')].Timestamp(+1)
但是这会返回NaT,我在文档中找不到任何东西来应用过滤和使用shift。一种选择是从末尾开始迭代数据帧,但这似乎有点低效。在
如果列
Timestamp
排序并包含每个月的所有天数,则解决方案:您可以尝试先通过^{} 查找数据组,然后通过} 查找{a2}。您得到} 由} 将输出列转换为整数:
Serie
和聚合^{NaN
,因此^{0
获得,并通过^{更一般的解决方案(所有日期都必须排序):
^{pr2}$如果需要将列从
timedelta
转换为int
:以下是自上次失败后的天数,而不是下一次失败的天数:
如果您想要正确的版本,那么您可以根据自己的需要进行调整,或者只需在开始和结束处反转原始数组。在
相关问题 更多 >
编程相关推荐