遍历布尔列表

时间:2019-06-19 16:46:37

标签: python

我正在尝试计算布尔值为true的时间。但是我不明白如何编写一个布尔值翻转必须导致动作的代码。

see dataframe picture

在图片中,您会在右栏中看到某些值为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用户,因此我不会走得更远。 希望有人能够帮助我。

CSV FILE OF DATAFRAME

1 个答案:

答案 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])