# save original row index for merging into original dataframe, as NAs will be introduced
data=data.rename(columns={"index":"RowIndex"})
data=data.rename(columns={"index":"RowIndex"})
# define Test/Training
data=data.assign(TeTr="Tr")
data=data.assign(TeTr="Tr")
# create empty df for training data
traindata=pd.DataFrame()
# calculate windows
forsensor_idindata[sensor_field].unique():
print(sensor_id)
sensordf=data.loc[data[sensor_field]==sensor_id]
index_test=sensordf.RowIndex.sample(n=int(testratio*len(sensordf)),random_state=randomseed)#draw random sample
sensordf.TeTr[index_test]="Te"#assign test samples
sensordf["flag_bin_t_1"]=sensordf["flag_bin"]-sensordf["flag_bin"].shift(1)# Flag at t-1
sensordf["flag_bin_t1"]=sensordf["flag_bin"]-sensordf["flag_bin"].shift(-1)# Flag at t+1
sensordf["flag_bin_t_"+str(window_flags)]=sensordf["flag_bin"].rolling(window_flags+1,center=False).sum()# n Flags in interval t to t-window_flags
sensordf["flag_bin_t"+str(window_flags)]=sensordf["flag_bin"].iloc[::-1].rolling(window_flags+1,center=False).sum()[::-1]# n Flags in interval t to t+window_flags