如果新窗口是两个旧窗口的交集,假设您要定义不与最小值重叠的窗口,我们需要通过做两件事来解决这个问题。
my_list = np.sort(list(set(np.concatenate([df['Start'].values,df['End'].values]))))
然后我们从这个列表中构建一个新的数据框:
new_df = pd.DataFrame({'Start':my_list[:-1],'End':my_list[1:]})
new_df['value'] = new_df.apply(lambda x: min(df[(df['Start'] <= x[0]) & (df['End'] >= x[1])]['Value']), axis = 1)
OUTPUT
Start End value
0 0 5 0.1
1 5 10 0.1
2 10 15 0.2
3 15 20 0.2
4 20 25 0.4
5 25 30 0.3
6 30 35 0.3
如果您需要更详细地解释每个行/功能正在做什么,请随时询问更多详细信息,我将更新答案。