У меня фрейм данных в Python 3 выглядит так, у него есть метка времени в своем индексе.Я хочу провести скользящее окно вперед на 10 секунд.

df = pd.DataFrame({'A': [25,4,2,33,44,88,51,29,18,42]})
df.index = [pd.Timestamp('20130101 09:00:01'),
pd.Timestamp('20130101 09:00:02'),
pd.Timestamp('20130101 09:00:03'),
pd.Timestamp('20130101 09:00:05'),
pd.Timestamp('20130101 09:00:06'),
pd.Timestamp('20130101 09:00:10'),
pd.Timestamp('20130101 09:00:17'),
pd.Timestamp('20130101 09:00:22'),
pd.Timestamp('20130101 09:00:45'),
pd.Timestamp('20130101 09:00:53')]
Для каждого наблюдения я хочу найти наблюдения в течение следующих 10 секунди выполнить предварительный анализ с помощью определенной пользователем функции.Мои функции таковы:
def logsum(data):
series = pd.Series(data)
return 2*(np.log(data.max()) + np.log(data.min()))
В основном найдите ряд и вычислите сумму максимальных и минимальных значений журнала.
Я пытаюсь повернуть вспять ряд, затем выполнить нормальный прокатОкно анализа, теперь у него есть две проблемы.1. он не может выполнять мою функцию logsum;2. ряд должен быть монотонным: «ValueError: индекс должен быть монотонным»
мой текущий код:
df['B-roll'] = df[::-1].rolling('10s').A.logsum()
Вот ожидаемый результат:

df = pd.DataFrame({'A': [25,4,2,33,44,88,51,29,18,42], 'B-roll': [4.49,4.49,4.49,6.92,7.17,7.3,6.33,5.84,5.75,6.49]})
df.index = [pd.Timestamp('20130101 09:00:01'),
pd.Timestamp('20130101 09:00:02'),
pd.Timestamp('20130101 09:00:03'),
pd.Timestamp('20130101 09:00:05'),
pd.Timestamp('20130101 09:00:06'),
pd.Timestamp('20130101 09:00:10'),
pd.Timestamp('20130101 09:00:17'),
pd.Timestamp('20130101 09:00:22'),
pd.Timestamp('20130101 09:00:45'),
pd.Timestamp('20130101 09:00:53')]
Например, df ['B-roll'] [0] равно 4,49.В течение следующих 10 секунд максимальное значение «A» равно 88, минимальное значение «A» равно 2. Таким образом, функция logsum находит = 2 * (LOG (88) + LOG (2)) = 4,49.
Остальное следует, большое спасибо.