Оптимизация анализа персистентности с помощью прокрутки окон в Pandas и обработки совпадений между месяцамиPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Оптимизация анализа персистентности с помощью прокрутки окон в Pandas и обработки совпадений между месяцами

Сообщение Anonymous »

Я относительно новичок в Python и программировании в целом. Я работаю над проектом по выполнению анализа персистентности в большом наборе данных и стараюсь избегать использования циклов for для повышения эффективности. Буду признателен за рекомендации!
Проблема:
У меня есть DataFrame с почасовым индексом временной метки и логическим столбцом (маской), содержащим значения TRUE или FALSE. Я хочу определить «окна постоянства», в которых имеется X последовательных значений TRUE (X — заданная длина окна). После определения этих окон я хочу сгруппировать подсчеты по месяцам, чтобы получить ежемесячную статистику. Но я сталкиваюсь с проблемами из-за совпадения нескольких месяцев.
Мой подход:
Я использовал pandas.rolling() для подсчета скользящих окон, а затем фильтрую их с помощью Rolling_result == window_length, который правильно идентифицирует постоянные окна. Однако при группировке по месяцам возникают проблемы из-за совпадения месяцев.
Вот пример моих данных с длиной окна 3 часа:
пример данных
Когда я группирую количество окон по месяцам, в настоящее время я получаю 4 окна для апреля и 2 окна для мая. Однако два окна в мае являются результатом совпадения с апрелем. В идеале я бы хотел, чтобы количество окон составляло 3 для апреля и 3 для мая путем пропорционального разделения перекрывающихся окон:
  • Для апреля: 2 (полных) windows) + 0,66 (частичное окно) + 0,33 (частичное
    окно) = 3
  • Для мая: 1 (полное окно) + 1 (полное окно) + 0,66
    (частичное окно) + 0,33 (частичное окно) = 3
Вопрос:
Есть ли способ справиться с этими перекрытиями и атрибутировать частичные счетчики пропорционально каждому месяцу без использования циклов for? Есть ли векторизованное решение в Pandas или другой подход, позволяющий достичь этой цели?
Заранее благодарим за помощь!

Подробнее здесь: https://stackoverflow.com/questions/791 ... g-overlaps
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»