Вот все, что нужно для легкого копирования:

я есть некоторые данные о температуре кожи (собранные с частотой 1 Гц), которые я собираюсь проанализировать.

Однако датчики не всегда соприкасались с кожей. Таким образом, у меня есть проблема удаления этих данных о температуре кожи, но при сохранении фактических данных о температуре кожи. У меня есть около 100 файлов для анализа, поэтому мне нужно сделать это автоматически.

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

Мои данные примерно выглядят так:

df =

timeStamp                 Temp
2018-05-04 10:08:00       28.63
         .                  . 
         .                  .
2018-05-04 21:00:00       31.63

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

Чтобы устранить эти скачки, я думал о подходе, в котором я использую дифференциал первого порядка температуры, а затем использую другой набор порогов, чтобы избавиться от данных, которые меня не интересуют.

например

df_diff = df.diff(60) # period of about 60 makes jumps stick out

filter_index = np.nonzero((df.Temp <-1) | (df.Temp>0.5)) # when diff is less than -1 and greater than 0.5, most likely data jumps.

Тем не менее, я застрял здесь. Основная проблема заключается в том, что:

1) Я не знаю, как теперь использовать этот индексный список для удаления данных без скина в df. Как лучше всего это сделать?

Более незначительная проблема заключается в том, что 2) я думаю, что у меня все еще останутся некоторые остаточные артефакты от скачков данных вблизи краев (например, когда более жесткий порог начнет отбрасывать хорошие данные). Есть ли лучшая стратегия фильтрации или способ избавиться от этих артефактов?

* Отредактируйте, как предложено. Я также рассчитал разницу второго порядка, но, если честно, я думаю, что разница первого порядка учитывает более жесткие пороги (см. Ниже)

* Редактировать 2:Ссылка на образец данных

Ответы на вопрос(2)

Ваш ответ на вопрос