У меня есть два кадра данных, которые я хочу объединить. Они выглядят следующим образом:
df_1
unit start_time stop_time
A 0.0 1.2
B 1.3 4.1
A 4.2 4.5
B 4.6 7.2
A 7.3 8.0
df_2
time other_data
0.2 .0122
0.4 .0128
0.6 .0101
0.8 .0091
1.0 .2122
1.2 .1542
1.4 .1546
1.6 .1522
1.8 .2542
2.0 .1557
2.2 .2542
2.4 .1543
2.6 .0121
2.8 .0111
3.0 .0412
3.2 .0214
3.4 .0155
3.6 .0159
3.8 .0154
4.0 .0155
4.2 .0211
4.4 .0265
4.6 .0146
4.8 .0112
5.0 .0166
5.2 .0101
5.4 .0132
5.6 .0112
5.8 .0121
6.0 .0142
6.2 .0124
6.4 .0111
6.6 .0123
6.8 .0111
6.0 .0119
6.2 .0112
6.4 .0131
6.6 .0117
6.8 .0172
7.0 .0123
7.2 .0127
7.4 .0121
7.6 .0110
7.8 .0120
8.0 .0121
Я хочу объединить эти фреймы данных, используя следующие критерии:
Шаг 1
Я хочу сгруппировать все значения из df_2. other_data, где df_2.time находится между df_1.start_time и df_1.stop_time. Например, для первой строки df_1 будут сгруппированы следующие данные из df_2:
time other_data
0.2 .0122
0.4 .0128
0.6 .0101
0.8 .0091
1.0 .2122
1.2 .1542
Шаг 2
В этой группе я хочу подсчитать общее количество наблюдений, гдеЗначение df_2.other_data превышает пороговое значение, которое в этом случае будет установлено на 0,0120. Общее количество наблюдений в этой группе выше этого порога равно 4. Это значение, которое я хочу объединить с df_1. Результат должен выглядеть так:
unit start_time stop_time other_data_above_threshold
A 0.0 1.2 4
Окончательный кадр данных должен выглядеть следующим образом:
unit start_time stop_time other_data_above_threshold
A 0.0 1.2 4
B 1.3 4.1 13
A 4.2 4.5 3
B 4.6 7.2 11
A 7.3 8.0 4