code: def to_df(self):
      """Conversion method to Pandas DataFrame. To be attached to ResultDict.
  
      Returns
      -------
      List : of Pandas DataFrames in order of Total, First, Second
  
      Examples
      --------
      >>> Si = sobol.analyze(problem, Y, print_to_console=True)
      >>> total_Si, first_Si, second_Si = Si.to_df()
      """
      total, first, (idx, second) = Si_to_pandas_dict(self)
  
      problem = self.problem
      groups = _check_groups(problem)
      if not groups:
          names = problem.get("names")
      else:
          names, _ = extract_group_names(groups)
  
      ret = [
          pd.DataFrame(total, index=names),
          pd.DataFrame(first, index=names),
      ]
  
      if second:
          ret += [pd.DataFrame(second, index=idx)]
  
      return ret
  
imports: from types import MethodType
  from warnings import warn
  from scipy.stats import norm
  import numpy
  import pandas
  from .None import common_args
  from ..util import read_param_file, ResultDict, extract_group_names, _check_groups
  from multiprocessing import Pool, cpu_count
  from functools import partial
  from itertools import combinations, zip_longest
label_desc: Use image node_id 11 for calling a global function with example usage: to_df() and returns: ret