Фильтрация на основе временных рядов Pandas - PullRequest
1 голос
/ 07 июля 2019

Имейте временные ряды, фиксирующие каждую секунду энергопотребления, для данных за месяц, загруженных в фрейм данных pandas с индексацией по временной метке. Попытка разработать код, который будет отображать окно с точной продолжительностью, в которой каждую секунду потребление энергии> 1500и это окно составляет почти 3 часа (оно может находиться в диапазоне от 2 часов 50 минут до 3 часов 10 минут). Это окно будет появляться каждый день в течение месяца, поэтому цель состоит в том, чтобы зафиксировать точную продолжительность времени окна для каждого дня

                         energy_consumed
timestamp   
2011-08-01 00:00:00-07:00   1322
2011-08-01 00:00:01-07:00   1322
2011-08-01 00:00:02-07:00   1328
2011-08-01 00:00:03-07:00   1328
2011-08-01 00:00:04-07:00   1328
2011-08-01 00:00:05-07:00   1328
2011-08-01 00:00:06-07:00   1328
2011-08-01 00:00:07-07:00   1320
2011-08-01 00:00:08-07:00   1320
2011-08-01 00:00:09-07:00   1320
2011-08-01 00:00:10-07:00   1320
2011-08-01 00:00:11-07:00   1320
2011-08-01 00:00:12-07:00   1320
2011-08-01 00:00:13-07:00   1320
2011-08-01 00:00:14-07:00   1320
2011-08-01 00:00:15-07:00   1320
2011-08-01 00:00:16-07:00   1320
2011-08-01 00:00:17-07:00   1318
2011-08-01 00:00:18-07:00   1318
2011-08-01 00:00:19-07:00   1318

Полный файл данных здесь

1 Ответ

0 голосов
/ 08 июля 2019

Вы рассматривали возможность использования .isin() метонда?

Он будет фильтровать ваше DataFrame по определенному значению в списке для столбца по вашему выбору.

Итак, сначала вы должны получить все значения из столбца energy_consumed со значением >1500, поместить их все в список и использовать этот список в качестве аргумента в методе .isin():

energy_greater_than_condition_list = [x for x in df['energy_consumed'].values.tolist() if x > 1500]

df = df.loc[df['energy_consumed'].isin(energy_greater_than_condition_list)]

Этот df после выполнения вышеуказанного кода теперь будет иметь все значения timestamp и energy_consumed для значений energy_consumed, превышающих только 1500.

Надеюсь, это поможет:)).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...