Я анализирую данные временных рядов энергосистем и пытаюсь найти непрерывные точки данных, которые выходят за пределы определенного порогового значения.
В настоящее время я использую формулу excel построчно, чтобы сделать это вручную, но когда я пытаюсь найти более эффективные методы, я понял, что это можно сделать в функции python pandas groupby.
Однако, что касается примеров, которые я прочитал, функция groupby группирует строки только в том случае, если они имеют одинаковую метку. Что я хотел бы сделать, так это передать определенную функцию в groupby, которая могла бы проверить, является ли значение => 3, а затем сгруппировать эти значения, проиндексированные по времени начала и окончания нарушения порогового значения => 3.
Вход:
+-------+---------+------+
| Index | Time | Value|
+-------+---------+------+
| 0 | 00:00:01| 3 |
| 1 | 00:00:02| 4 |
| 2 | 00:00:03| 5 |
| 3 | 00:00:04| 2 |
| 4 | 00:00:05| 6 |
| 5 | 00:00:06| 7 |
| 6 | 00:00:07| 1 |
| 7 | 00:00:08| 9 |
+-------+---------+------+
Выход:
+-------+-----------+----------+--------+
| Index | TimeStart | TimeEnd | Value |
+-------+-----------+----------+--------+
| 0 | 00:00:01 | 00:00:03 | 3,4,5 |
| 1 | 00:00:05 | 00:00:06 | 6,7 |
| 2 | 00:00:08 | 00:00:08 | 9 |
+-------+-----------+----------+--------+