docstr: Determines whether the minimum value for each fairness measure in
  fair_measures_requested is 'False' across all attribute_values defined
  by a group attribute_name. If 'False' is present, determination for the
  attribute is False for given fairness measure.
  
  :param group_value_df: output dataframe of get_group_value_fairness() method
  :return: A dataframe of fairness measures at the attribute level (no attribute_values)
code: def get_group_attribute_fairness(
      self, group_value_df, fair_measures_requested=None
  ):
      """
      Determines whether the minimum value for each fairness measure in
      fair_measures_requested is 'False' across all attribute_values defined
      by a group attribute_name. If 'False' is present, determination for the
      attribute is False for given fairness measure.
  
      :param group_value_df: output dataframe of get_group_value_fairness() method
      :return: A dataframe of fairness measures at the attribute level (no attribute_values)
      """
      logging.info("get_group_attribute_fairness")
      if not fair_measures_requested:
          fair_measures_requested = self.fair_measures_supported
      group_attribute_df = pd.DataFrame()
      key_columns = ["model_id", "score_threshold", "attribute_name"]
      groupby_variable = group_value_df.groupby(key_columns)
      # We need to do this because of NaNs. idxmin() on pandas raises keyerror if there is a NaN...
      group_attribute_df = self._fill_groupby_attribute_fairness(
          groupby_variable,
          key_columns,
          group_attribute_df,
          fair_measures_requested,
      )
      if group_attribute_df.empty:
          raise Exception(
              "get_group_attribute_fairness: no fairness measures requested found on input group_value_df columns"
          )
      parity_cols = [
          col
          for col in self.type_parity_depend
          if col in group_value_df.columns
      ]
      group_attribute_df = self._fill_groupby_attribute_fairness(
          groupby_variable, key_columns, group_attribute_df, parity_cols
      )
      highlevel_cols = [
          col
          for col in self.high_level_fairness_depend
          if col in group_value_df.columns
      ]
      group_attribute_df = self._fill_groupby_attribute_fairness(
          groupby_variable,
          key_columns,
          group_attribute_df,
          highlevel_cols,
      )
      return group_attribute_df
  
file_path: aequitas/src/aequitas/fairness.py
imports: import logging
  import numpy
  import pandas
label_desc: Use image node_id 5 for calling the Fairness obj's underlying member method code with example usage: obj.get_group_attribute_fairness(group_value_df, fair_measures_requested) and returns: group_attribute_df