code: def multiple_rolling(
      df, windows=[1, 2], functions=["mean", "std"], columns=None
  ):
      windows = [1 + a for a in windows]
      if not columns:
          columns = df.columns.to_list()
      rolling_dfs = (
          df[columns]
          .rolling(i)  # 1. Create window
          .agg(functions)  # 1. Aggregate
          .rename(
              {col: "{0}_{1:d}".format(col, i) for col in columns},
              axis=1,
          )  # 2. Rename columns
          for i in windows
      )  # For each window
      df_out = pd.concat((df, *rolling_dfs), axis=1)
      da = df_out.iloc[:, len(df.columns) :]
      da = [col[0] + "_" + col[1] for col in da.columns.to_list()]
      df_out.columns = df.columns.to_list() + da
  
      return df_out
  
imports: import pandas
  import numpy
  import statsmodels.api
  from scipy import signal, integrate
  from pykalman import UnscentedKalmanFilter
  from tsaug import *
  from fbprophet import Prophet
  import pylab
  from seasonal.periodogram import periodogram
label_desc: Use image node_id 22 for calling a global function with example usage: multiple_rolling(df, windows, functions, columns) and returns: df_out