Рассчитать минимум перекрывающегося окна - PullRequest
0 голосов
/ 23 ноября 2018

У меня проблемы с размышлениями о способе решения проблемы.У меня есть данные, как показано ниже:

enter image description here

Это значения для перекрывающихся окон.Моя задача - вычислить минимальное значение при объединении (?) Окон.Это должно выглядеть следующим образом:

enter image description here

Я немного растерялся здесь, в каком направлении идти, у кого-нибудь есть какие-либо предложения?

1 Ответ

0 голосов
/ 23 ноября 2018

Предполагая, что вы хотите определить окна, которые не перекрываются со значением минимума, если новое окно является пересечением двух старых окон, нам нужно решить эту проблему, выполнив две вещи.

  • Сначала нам нужно определить окна.я предполагаю, что если мы получим все начальные и конечные точки, мы сможем сделать это, поскольку окна не обязательно должны быть одинакового размера, просто не перекрывая друг друга.

    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)

ВЫХОД

          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

Если вам нужно более подробное объяснение того, что делает каждая строка / функция, пожалуйста, не стесняйтесь спрашиватьдля более подробной информации я обновлю ответ.

...