s = pd.Series([1, 2, 3, 2, 1, 2, 3, 2, 1])
df = pd.DataFrame({'DATA': s, 'POINTS': 0})
df.POINTS = df.DATA.rolling(4).max().shift(-1)
df.POINTS = (df.POINTS * (df.POINTS == df.DATA)).fillna(0)
Как рассчитать значения столбца pandas DataFrame в зависимости от результатов скользящей функции из другого столбца