计算重叠窗口的最小值

问题描述 投票:0回答:1

我在思考解决问题的方法时遇到了麻烦。我有一个类似下面的数据框:

enter image description here

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

enter image description here

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

python window overlap pooling
1个回答
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:]})
  • 然后我们找到min的值: 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

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

© www.soinside.com 2019 - 2024. All rights reserved.