Итак, у меня есть фрейм данных, который выглядит следующим образом:
id epoch value duration
958 1819 2018-01-01 00:00:00.000 1 20
959 1820 2018-01-01 00:20:00.000 2 20
960 1821 2018-01-01 00:40:00.000 3 20
961 1822 2018-01-01 01:00:00.000 4 20
962 1823 2018-01-01 01:20:00.000 5 20
963 1824 2018-01-01 01:20:01.000 5.05 0.01
964 1825 2018-01-01 01:40:01.000 6 20
965 1826 2018-01-01 02:00:01.000 7 20
966 1827 2018-01-01 02:00:02.000 7.0012 0.01
967 1828 2018-01-01 02:20:02.000 8 20
Итак, как вы можете видеть, у нас есть значения, которые являются 3-периодическими c, и я хочу нумеровать периоды в новом столбце игнорируя «выбросы», которые имеют очень короткую продолжительность (но не удаляя линию).
Вот что у меня есть:
id epoch value duration period
958 1819 2018-01-01 00:00:00.000 1 20 1
959 1820 2018-01-01 00:20:00.000 2 20 2
960 1821 2018-01-01 00:40:00.000 3 20 3
961 1822 2018-01-01 01:00:00.000 4 20 1
962 1823 2018-01-01 01:20:00.000 5 20 2
963 1824 2018-01-01 01:20:01.000 5.05 0.01 3
964 1825 2018-01-01 01:40:00.000 6 20 1
965 1826 2018-01-01 02:00:01.000 7 20 2
966 1827 2018-01-01 02:00:02.000 7.0012 0.01 3
967 1828 2018-01-01 02:20:02.000 8 20 1
И вот что я хочу:
id epoch value duration period
958 1819 2018-01-01 00:00:00.000 1 20 1
959 1820 2018-01-01 00:20:00.000 2 20 2
960 1821 2018-01-01 00:40:00.000 3 20 3
961 1822 2018-01-01 01:00:00.000 4 20 1
962 1823 2018-01-01 01:20:00.000 5 20 2
963 1824 2018-01-01 01:20:01.000 5.05 0.01 2
964 1825 2018-01-01 01:40:00.000 6 20 3
965 1826 2018-01-01 02:00:01.000 7 20 1
966 1827 2018-01-01 02:00:02.000 7.0012 0.01 1
967 1828 2018-01-01 02:20:02.000 8 20 2
Я уже сделал это с помощью 2 для циклов, но поскольку размер информационного кадра велик, я ищу более быстрый способ сделать это.
Заранее благодарен
Редактировать: I добавлено еще несколько строк. Чтобы быть более понятным: некоторые точки «дублируются» (они имеют почти то же значение, что и предыдущий), так что мне нужно поместить их в тот же период, что и его двойник. Кроме того, я не могу удалить их (может быть временно?), Мне нужно, чтобы они были в окончательном фрейме данных.