class_docstr: Class that collects and stores information and statistics on issues found in a dataset.
  
  Parameters
  ----------
  data :
      The data object for which the issues are being collected.
  strategy :
      Strategy used for processing info dictionaries.
  
  Attributes
  ----------
  issues : pd.DataFrame
      Stores information about each individual issue found in the data,
      on a per-example basis.
  issue_summary : pd.DataFrame
      Summarizes the overall statistics for each issue type.
  info : dict
      A dictionary that contains information and statistics about the data and each issue type.
docstr: Use this after finding issues to see which examples suffer from which types of issues.
  
  Parameters
  ----------
  issue_name : str or None
      The type of issue to focus on. If `None`, returns full DataFrame summarizing all of the types of issues detected in each example from the dataset.
  
  Raises
  ------
  ValueError
      If `issue_name` is not a type of issue previously considered in the audit.
  
  Returns
  -------
  specific_issues :
      A DataFrame where each row corresponds to an example from the dataset and columns specify:
      whether this example exhibits a particular type of issue and how severely (via a numeric quality score where lower values indicate more severe instances of the issue).
  
      Additional columns may be present in the DataFrame depending on the type of issue specified.
docstr_tok: ["Use","this","after","finding","issues","to","see","which","examples","suffer","from","which","types","of","issues",".","Parameters","--","--","--","--","--","issue_name",":","str","or","None","The","type","of","issue","to","focus","on",".","If","`","None","`",",","returns","full","DataFrame","summarizing","all","of","the","types","of","issues","detected","in","each","example","from","the","dataset",".","Raises","--","--","--","ValueError","If","`","issue_name","`","is","not","a","type","of","issue","previously","considered","in","the","audit",".","Returns","--","--","--","-","specific_issues",":","A","DataFrame","where","each","row","corresponds","to","an","example","from","the","dataset","and","columns","specify",":","whether","this","example","exhibits","a","particular","type","of","issue","and","how","severely","(","via","a","numeric","quality","score","where","lower","values","indicate","more","severe","instances","of","the","issue",")",".","Additional","columns","may","be","present","in","the","DataFrame","depending","on","the","type","of","issue","specified","."]
code: def get_issues(
      self, issue_name: Optional[str] = None
  ) -> pd.DataFrame:
      """
      Use this after finding issues to see which examples suffer from which types of issues.
  
      Parameters
      ----------
      issue_name : str or None
          The type of issue to focus on. If `None`, returns full DataFrame summarizing all of the types of issues detected in each example from the dataset.
  
      Raises
      ------
      ValueError
          If `issue_name` is not a type of issue previously considered in the audit.
  
      Returns
      -------
      specific_issues :
          A DataFrame where each row corresponds to an example from the dataset and columns specify:
          whether this example exhibits a particular type of issue and how severely (via a numeric quality score where lower values indicate more severe instances of the issue).
  
          Additional columns may be present in the DataFrame depending on the type of issue specified.
      """
      if issue_name is None:
          return self.issues
  
      columns = [
          col for col in self.issues.columns if issue_name in col
      ]
      if not columns:
          raise ValueError(
              f"No columns found for issue type '{issue_name}'."
          )
      specific_issues = self.issues[columns]
      info = self.get_info(issue_name=issue_name)
  
      if issue_name == "label":
          specific_issues = specific_issues.assign(
              given_label=info["given_label"],
              predicted_label=info["predicted_label"],
          )
  
      if issue_name == "near_duplicate":
          column_dict = {
              k: info.get(k)
              for k in [
                  "near_duplicate_sets",
                  "distance_to_nearest_neighbor",
              ]
              if info.get(k) is not None
          }
          specific_issues = specific_issues.assign(**column_dict)
  
      if issue_name == "class_imbalance":
          specific_issues = specific_issues.assign(
              given_label=info["given_label"]
          )
      return specific_issues
  
imports: from __future__ import annotations
  import warnings
  from abc import ABC, abstractmethod
  from typing import TYPE_CHECKING, Any, Dict, List, Optional, Union
  import numpy
  import pandas
label_desc: Use image node_id 4 for calling the DataIssues obj's underlying member method code with example usage: obj.get_issues(issue_name) and returns: specific_issues, self