计算重叠窗口的最小值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算重叠窗口的最小值相关的知识,希望对你有一定的参考价值。

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

enter image description here

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

enter image description here

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

答案

如果新窗口是两个旧窗口的交集,假设您要定义不与最小值重叠的窗口,我们需要通过做两件事来解决这个问题。

  • 首先我们需要定义窗口。我假设如果我们得到所有起点和终点,我们可以这样做,因为窗口不必具有相同的大小,只是不相互重叠。 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

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

以上是关于计算重叠窗口的最小值的主要内容,如果未能解决你的问题,请参考以下文章

pandas计算滑动窗口中的最小值实战(Rolling Minimum in a Pandas Column):计算单数据列滑动窗口中的最小值计算多数据列滑动窗口中的最小值

pandas使用rolling函数计算dataframe指定数据列特定窗口下的滚动最小值(rolling minimum)自定义指定滚动窗口的大小(window size)

片段与另一个片段重叠

如何修复重叠的片段

滚动值的复最小值

导航上的片段生命周期重叠