我正在尝试计算布尔值为true的时间。但是我不明白如何编写一个布尔值翻转必须导致动作的代码。
在图片中,您会在右栏中看到某些值为true,必须计算第一个和最后一个 true 之间的时间范围。
所以这是介于 2019-02-22 09:20:01 和 2019-02-22 09:50:03
的时间因此,答案必须为 30分钟2秒。
列表的长度可能超过此长度,从而在其他地方开始另一段 true 值。
我尝试过的代码如下:
for i in (df1['InsideArea'][:]):
if i == 'True' and i != df1['InsideArea'][i-1]:
start_time = df1['time'][i]
elif i == 'False' and i != df1['InsideArea'][i-1]:
end_time = df1['time'][i]
df1['TimeInArea'] = (start_time - end_time)
else:
continue
由于我不是经验丰富的python用户,因此我不会走得更远。 希望有人能够帮助我。
答案 0 :(得分:0)
times = df1.index[1:][df1.iloc[1:, 1].reset_index(drop=True) != df1.iloc[:-1, 1].reset_index(drop=True)]
print(times[1::2] - times[0::2])