docs: def get_groupby_statistic(data):
      """Calculate value counts and distinct count of a variable (technically a Series).
  
      The result is cached by column name in a global variable to avoid recomputing.
  
      Parameters
      ----------
      data : Series
          The data type of the Series.
  
      Returns
      -------
      list
          value count and distinct count
      """
      if data.name is not None and data.name in _VALUE_COUNTS_MEMO:
          return _VALUE_COUNTS_MEMO[data.name]
  
      value_counts_with_nan = data.value_counts(dropna=False)
      value_counts_without_nan = value_counts_with_nan.reset_index().dropna().set_index('index').iloc[:,0]
      distinct_count_with_nan = value_counts_with_nan.count()
  
      # When the inferred type of the index is just "mixed" probably the types within the series are tuple, dict, list and so on...
      if value_counts_without_nan.index.inferred_type == "mixed":
          raise TypeError('Not supported mixed type')
  
      result = [value_counts_without_nan, distinct_count_with_nan]
  
      if data.name is not None:
          _VALUE_COUNTS_MEMO[data.name] = result
  
      return result