code: def analyze_quality_table(self, obj,low_bound=None, high_bound=None):
          
  
          data = obj.df
          N_rows = 3
          N_cols = data.shape[1]
          d = pd.DataFrame(np.zeros((N_rows, N_cols)),
                           index=['% Missing', 'AVG Length Missing', 'Std dev. Missing'],
                           columns=[data.columns])
  
          
          if low_bound:
              data = data.where(data >= low_bound)
          if high_bound:
              data=data.where(data < high_bound)
  
  
          for i in range(N_cols):
  
              data_per_meter = data.iloc[:, [i]]
  
              data_missing, meter = self.identify_missing(data_per_meter)
              percentage = data_missing.sum() / (data.shape[0]) * 100
              data_gaps = self.diff_boolean(data_missing, column_name=meter)
  
              missing_mean = data_gaps.mean()
              std_dev = data_gaps.std()
              d.loc["% Missing", meter] = percentage[meter]
              d.loc["AVG Length Missing", meter] = missing_mean['duration']
              d.loc["Std dev. Missing", meter] = std_dev['duration']
  
          return d
docs: Takes in an the object returned by the MDAL query, and analyzes the quality 
          of the data for each column in the df. Returns a df of data quality metrics
  
          To Do
          -----
          Need to make it specific for varying meters and label it for each type,
          Either separate functions or make the function broader
  
          Parameters
          ----------
          obj             : ???
              the object returned by the MDAL Query
  
          low_bound       : float
              all data equal to or below this value will be interpreted as missing data
          high_bound      : float
              all data above this value will be interpreted as missing
  
          Returns
          -------
          pd.DataFrame()
            returns data frame with % missing data, average duration of missing data 
          event and standard deviation of that duration for each column of data