计算重叠窗口的最小值

时间:2018-11-23 09:35:17

标签: python window overlap pooling

我在想办法解决问题时遇到了麻烦。我有一个像下面这样的数据框:

enter image description here

这些是重叠窗口的值。我的挑战是在合并(?)窗口时计算最小值。看起来应该像这样:

enter image description here

我在这里迷失方向,有人有什么建议吗?

1 个答案:

答案 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

如果您需要更详细地解释每行/每行的功能,请随时询问更多详细信息,我将更新答案。