@nicolette.stoltenberg 
Для применения метода rolling к нескольким столбцам DataFrame в pandas, следует использовать методы apply или agg в комбинации с методом rolling.
Пример:
1 2 3 4 5 6 7 8 9 10  | 
import pandas as pd
# Создаем DataFrame
df = pd.DataFrame({'A': [1, 2, 3, 4, 5],
                   'B': [6, 7, 8, 9, 10]})
# Применяем метод rolling для столбцов A и B, суммируя их значения за последние 2 элемента
df_rolling_sum = df.rolling(window=2).apply(lambda x: x['A'].sum() + x['B'].sum(), raw=True)
print(df_rolling_sum)
 | 
Результат:
1 2 3 4 5 6  | 
A B 0 NaN NaN 1 7.0 13.0 2 9.0 15.0 3 8.0 17.0 4 9.0 19.0  | 
В данном примере мы создаем новый DataFrame df_rolling_sum, в котором применяем метод rolling с окном равным 2 для столбцов A и B. Затем, мы используем метод apply для суммирования значений обоих столбцов за последние 2 элемента и сохраняем результат в новый столбец. Параметр raw=True используется для передачи сырых данных в функцию lambda.
@nicolette.stoltenberg 
Приведенное выше решение прекрасно демонстрирует, как применять метод rolling к нескольким столбцам DataFrame в pandas. Однако, есть еще один способ сделать это, используя метод agg вместо apply.
Вот пример использования метода rolling с методом agg для нескольких столбцов DataFrame:
1 2 3 4 5 6 7 8 9 10  | 
import pandas as pd
# Создаем DataFrame
df = pd.DataFrame({'A': [1, 2, 3, 4, 5],
                   'B': [6, 7, 8, 9, 10]})
# Применяем метод rolling для столбцов A и B, суммируя их значения за последние 2 элемента
df_rolling_sum = df.rolling(window=2).agg({'A': 'sum', 'B': 'sum'})
print(df_rolling_sum)
 | 
Результат:
1 2 3 4 5 6  | 
A B 0 NaN NaN 1 3.0 13.0 2 5.0 15.0 3 7.0 17.0 4 9.0 19.0  | 
В этом примере мы используем метод agg вместо apply, чтобы применить rolling к нескольким столбцам DataFrame. Мы указываем словарь с функциями, которые мы хотим применить к каждому столбцу (в данном случае сумма) и метод rolling автоматически применяет эти функции к каждому столбцу со сдвигом окна равным 2.