答案 0 :(得分:1)
如果新窗口是两个旧窗口的交集,假设您要定义的窗口不与最小值重叠,那么我们需要通过做两件事来解决此问题。
首先,我们需要定义窗口。我认为,如果我们获得了所有的起点和终点,我们就可以做到这一点,因为窗户的大小不必相等,彼此之间不必重叠。
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)
输出
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
如果您需要更详细地解释每行/每行的功能,请随时询问更多详细信息,我将更新答案。