Подсчет повторяющихся значений в нескольких временных рядахPython

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

Сообщение Anonymous »

У меня довольно простая проблема. У меня есть набор данных с несколькими продуктами и динамикой их цен с течением времени. Теперь мне нужно определить периоды, в течение которых цены не меняются в течение последовательных дней (за исключением выходных --> поэтому пятница и понедельник идут подряд).
Набор данных:



ID
Дата
Цена




1
01.02.2024
1,00


1
04.02.2024
1,00< /td>


1
05 февраля 2024 г.
1,20


1
06 февраля 2024 г.< /td>
1,30


1
2024-02-07
1,30


2
2024-02-01
1,30


2
04 февраля 2024 г.
0,90


2
05.02.2024
0,90
< /tr>

2
06.02.2024
0,90


2
07.02.2024
< td>1,30



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



Идентификатор
начальная_дата
конечная_дата
цена
repeated_days_count




1
2024-02-01
2024-02-04
1,00
2


1
06 февраля 2024 г.2024-02-07
1,30
2

2
04 февраля 2024 г.
06 февраля 2024 г.
0,90
3



Как видите, мне нужно избежать следующих проблем:
  • 01 февраля 2024 г. до 2024 г. 02-04: Как указано выше, это считается как последовательные дни, т.е. игнорируем выходные 2024-02-02 и 2024-02-03)
  • Если та же цена появляется в другой раз в серия, ее не следует считать. Только если это происходит в дни подряд.
  • Если одна и та же цена (здесь 1,30) появляется в списке сразу друг за другом, но не для одного и того же идентификатора, она не должна учитываться. как последовательный --> сдвиг().cumsum() здесь не будет работать.
Есть идеи? Может быть, сдвиг().cumsum(), но только внутри каждого идентификатора?
До сих пор я пробовал несколько вариантов первого сдвиг().cumsum()а затем groupby().agg({"date": ["min", "max"], "price": "size"
Но ни один из них не решит вышеупомянутые проблемы вместе.

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

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

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

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

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

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

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