, Var1 0, :
df = df.loc[df['Var1'] != 0]
, True, EvntType 1:
mask = df['EvntType']==1
Time, , mask True:
times = df.loc[mask, 'Time']
, mask - True:
idx = np.flatnonzero(mask)
start_time - times[:-1].
In [56]: times[:-1]
Out[56]:
1 19
7 31
Name: Time, dtype: int64
time_inbetween - , np.diff(times)
In [55]: np.diff(times)
Out[55]: array([12, 5])
event_count - idx, 1.
In [57]: np.diff(idx)-1
Out[57]: array([4, 1])
import numpy as np
import pandas as pd
df = pd.DataFrame({'EvntType': [2, 1, 2, 2, 2, 2, 2, 1, 2, 1, 2],
'Time': [15, 19, 21, 23, 25, 26, 28, 31, 33, 36, 39],
'Var1': [1, 1, 6, 3, 0, 2, 3, 5, 1, 5, 1],
'Var2': [17, 45, 43, 65, 76, 35, 25, 16, 25, 36, 21]})
df = df.loc[df['Var1'] != 0]
mask = df['EvntType']==1
times = df.loc[mask, 'Time']
idx = np.flatnonzero(mask)
result = pd.DataFrame(
{'start_time': times[:-1],
'time_inbetween': np.diff(times),
'event_count': np.diff(idx)-1})
print(result)
event_count start_time time_inbetween
1 4 19 12
7 1 31 5