docstr: Calculates the fairness measures defined in fair_measures_requested
  dictionary and adds them as columns to the input bias_df.
  
  :param bias_df: the output dataframe from bias/ disparity calculation methods.
  :param tau: optional, the threshold for fair/ unfair evaluation.
  :param fair_measures_requested: optional, a dictionary containing fairness
      measures as keys and the corresponding input bias disparity as values.
  
  :return: Bias_df dataframe with additional columns for each
      of the fairness measures defined in the fair_measures dictionary
code: def get_group_value_fairness(
      self, bias_df, tau=None, fair_measures_requested=None
  ):
      """
      Calculates the fairness measures defined in fair_measures_requested
      dictionary and adds them as columns to the input bias_df.
  
      :param bias_df: the output dataframe from bias/ disparity calculation methods.
      :param tau: optional, the threshold for fair/ unfair evaluation.
      :param fair_measures_requested: optional, a dictionary containing fairness
          measures as keys and the corresponding input bias disparity as values.
  
      :return: Bias_df dataframe with additional columns for each
          of the fairness measures defined in the fair_measures dictionary
      """
      logging.info("get_group_value_fairness...")
      if not tau:
          tau = self.tau
      if not fair_measures_requested:
          fair_measures_requested = self.fair_measures_supported
  
      for fair, input in self.fair_measures_depend.items():
          if fair in fair_measures_requested:
              bias_df[fair] = bias_df[input].apply(self.fair_eval(tau))
  
      for fair, input in self.type_parity_depend.items():
          if input[0] in bias_df.columns:
              if input[1] in bias_df.columns:
                  bias_df[fair] = bias_df.apply(
                      self.high_level_pair_eval(input[0], input[1]),
                      axis=1,
                  )
              else:
                  bias_df[fair] = bias_df.apply(
                      self.high_level_single_eval(input[0]), axis=1
                  )
          elif input[1] in bias_df.columns:
              bias_df[fair] = bias_df.apply(
                  self.high_level_single_eval(input[1]), axis=1
              )
          else:
              print(
                  "get_group_value_fairness: No Parity measure input found on bias_df"
              )
  
      for fair, input in self.high_level_fairness_depend.items():
          if input[0] in bias_df.columns:
              if input[1] in bias_df.columns:
                  bias_df[fair] = bias_df.apply(
                      self.high_level_pair_eval(input[0], input[1]),
                      axis=1,
                  )
              else:
                  bias_df[fair] = bias_df.apply(
                      self.high_level_single_eval(input[0]), axis=1
                  )
          elif input[1] in bias_df.columns:
              bias_df[fair] = bias_df.apply(
                  self.high_level_single_eval(input[1]), axis=1
              )
      if (
          "Unsupervised Fairness" not in bias_df.columns
          and "Supervised Fairness" not in bias_df.columns
      ):
          logging.info(
              "get_group_value_fairness: No high level measure input found on bias_df"
              + input[1]
          )
      return bias_df
  
file_path: aequitas/src/aequitas/fairness.py
imports: import logging
  import numpy
  import pandas
label_desc: Use image node_id 3 for calling the Fairness obj's underlying member method code with example usage: obj.get_group_value_fairness(bias_df, tau, fair_measures_requested) and returns: bias_df