code: def _tukey(self,x,threshold):
          
          vals = x.values[~np.isnan(x.values)]
          try:
              q1, q3 = np.percentile(vals, [25, 75])
              iqr = q3 - q1
              low_bound = q1 - (iqr * threshold)
              high_bound = q3 + (iqr * threshold)
              outliers = np.where((vals > high_bound) | (vals < low_bound))
          except:
              outliers = []
          return outliers
docs: Count outliers according to Tukey's rule.
  
          Where Q1 is the lower quartile and Q3 is the upper quartile,
          an outlier is an observation outside of the range:
  
          [Q1 - k(Q3 - Q1), Q3 + k(Q3 - Q1)]
  
          k = 1.5 indicates an outlier
          k = 3.0 indicates an outlier that is "far out"