需要检查错误定价值的代码逻辑,并且第一次大于6时,它将取那个时间戳值,让我们称之为“TS1”。然后它将检查连续的m

ispricing>6,当错误定价第一次从“是”到“否”时,取“错误定价”=“no”上的时间戳,称之为“TS2”。
然后做TS2 - TS1
发布于 2020-07-18 14:49:47
df=pd.DataFrame(data={'ts':list(range(1,14)),
'mp':[0,0,1,1,1,0,0,1,1,0,0,1,0]}) # your data
df.loc[df.mp.diff(1)==1, 'ts1'] = df.ts # TS1
df.loc[df.mp.diff(1)==-1, 'ts2'] = df.ts # TS2
df=df[~(df.ts1.isna())|~(df.ts2.isna())] # keep only rows with changes
df.loc[~df.ts2.isna(), 'delta'] = df.ts2 - df.ts1.shift(1) # TS2-TS1
print (df)
ts mp ts1 ts2 delta
2 3 1 3.0 NaN NaN
5 6 0 NaN 6.0 3.0
7 8 1 8.0 NaN NaN
9 10 0 NaN 10.0 2.0
11 12 1 12.0 NaN NaN
12 13 0 NaN 13.0 1.0https://stackoverflow.com/questions/62969669
复制相似问题