У меня есть фрейм данных, df, который выглядит следующим образом:
HeartRate_smooth
2018-01-01 00:07:00 58.000000
2018-01-01 00:13:00 59.333333
2018-01-01 00:14:00 57.333333
2018-01-01 00:20:00 59.333333
2018-01-01 00:21:00 59.333333
2018-01-01 00:22:00 57.333333
2018-01-01 00:34:00 59.666667
2018-01-01 00:36:00 58.666667
2018-01-01 00:37:00 57.666667
2018-01-01 00:38:00 55.000000
2018-01-01 00:39:00 58.333333
2018-01-01 01:03:00 57.666667
2018-01-01 01:08:00 59.666667
2018-01-01 01:09:00 56.333333
2018-01-01 01:10:00 54.666667
2018-01-01 01:32:00 59.666667
2018-01-01 01:33:00 57.000000
2018-01-01 01:34:00 54.333333
2018-01-01 01:56:00 56.000000
2018-01-01 01:57:00 58.000000
2018-01-01 01:58:00 59.000000
2018-01-01 02:03:00 59.666667
2018-01-01 02:07:00 58.666667
2018-01-01 03:00:00 59.666667
2018-01-01 03:09:00 59.333333
2018-01-01 03:10:00 58.333333
2018-01-01 03:31:00 58.666667
2018-01-01 10:46:00 59.666667
2018-01-01 12:40:00 58.333333
2018-01-01 14:42:00 59.000000
Этот фрейм данных представляет собой набор временных точек, когда частота сердечных сокращений пациента ниже порогового значения.Я предполагаю, что эти точки либо когда пациент находится в состоянии покоя или спит.Я пытаюсь выяснить, где я могу определить период, когда пациент спит.Я предполагаю, что пациент спит, когда имеются данные в течение более часа с интервалом менее 30 минут между каждой строкой периода времени.
В данном кадре данных я могу предположить, что пациент спит с 00: С 07 до 02:07Это связано с тем, что между каждой строкой с 00:07 до 02:07 пропущено менее 30 минут отсутствующих данных.Строка, которая следует после 02:07, имеет разницу во времени более 30 минут, и поэтому я предполагаю, что пациент проснулся.
Обратите внимание, что я буду циклически просматривать данные нескольких пациентов, и период, в течение которого пациент спит, будет другим.Он не всегда может начинаться с первой записи в кадре данных.
Мои вопросы:
1. Как определить период, когда пациент спит, и разделить текущий кадр данных на 2, где один изdfs используется для хранения данных, когда пациент спит, а другой - когда пациент не спит?
2. Это не обязательно, но если возможно, как я могу распечатать время и количество времени, в течение которого пациент спит?спит?
Пример вывода данных на основе предоставленного образца данных:
Asleep_df:
HeartRate_smooth
2018-01-01 00:07:00 58.000000
2018-01-01 00:13:00 59.333333
2018-01-01 00:14:00 57.333333
2018-01-01 00:20:00 59.333333
2018-01-01 00:21:00 59.333333
2018-01-01 00:22:00 57.333333
2018-01-01 00:34:00 59.666667
2018-01-01 00:36:00 58.666667
2018-01-01 00:37:00 57.666667
2018-01-01 00:38:00 55.000000
2018-01-01 00:39:00 58.333333
2018-01-01 01:03:00 57.666667
2018-01-01 01:08:00 59.666667
2018-01-01 01:09:00 56.333333
2018-01-01 01:10:00 54.666667
2018-01-01 01:32:00 59.666667
2018-01-01 01:33:00 57.000000
2018-01-01 01:34:00 54.333333
2018-01-01 01:56:00 56.000000
2018-01-01 01:57:00 58.000000
2018-01-01 01:58:00 59.000000
2018-01-01 02:03:00 59.666667
2018-01-01 02:07:00 58.666667
Awake_df:
HeartRate_smooth
2018-01-01 03:00:00 59.666667
2018-01-01 03:09:00 59.333333
2018-01-01 03:10:00 58.333333
2018-01-01 03:31:00 58.666667
2018-01-01 10:46:00 59.666667
2018-01-01 12:40:00 58.333333
2018-01-01 14:42:00 59.000000
"Пациент спит с 00:С 07 до 03:31 в течение 3 часов и 24 минут "