code: def fast_fracdiff(x, cols, d):
      for col in cols:
          T = len(x[col])
          np2 = int(2 ** np.ceil(np.log2(2 * T - 1)))
          k = np.arange(1, T)
          b = (1,) + tuple(np.cumprod((k - d - 1) / k))
          z = (0,) * (np2 - T)
          z1 = b + z
          z2 = tuple(x[col]) + z
          dx = pl.ifft(pl.fft(z1) * pl.fft(z2))
          x[col + "_frac"] = np.real(dx[0:T])
      return x
  
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 4 for calling a global function with example usage: fast_fracdiff(x, cols, d) and returns: x