Этот вопрос следует за тем, который я ранее задавал здесь , и на который были даны ответы для числовых значений c.
Теперь я задаю второй вопрос относительно данных типа Период.
Хотя приведенный ниже пример кажется простым, у меня есть windows, которые имеют переменный размер . Интересуюсь 1-й строкой windows, я ищу технику c, которая использует это определение.
import pandas as pd
from random import seed, randint
# DataFrame
pi1h = pd.period_range(start='2020-01-01 00:00+00:00', end='2020-01-02 00:00+00:00', freq='1h')
seed(1)
values = [randint(0, 10) for ts in pi1h]
df = pd.DataFrame({'Values' : values, 'Period' : pi1h}, index=pi1h)
# This works (numeric type)
df['first'] = df['Values'].rolling(3).agg(lambda rows: rows[0])
# This doesn't (Period type)
df['OpeningPeriod'] = df['Period'].rolling(3).agg(lambda rows: rows[0])
Результат 2-й команды
DataError: No numeric types to aggregate
Пожалуйста , Есть идеи? Спасибо за любую помощь! Bests,