code: def categorical_partition_data(data):
      
  
      # Make dropna explicit (even though it defaults to true)
      series = pd.Series(data)
      value_counts = series.value_counts(dropna=True)
  
      # Compute weights using denominator only of nonnull values
      null_indexes = series.isnull()
      nonnull_count = (null_indexes == False).sum()
  
      weights = value_counts.values / nonnull_count
      return {
          "values": value_counts.index.tolist(),
          "weights": weights
      }
docs: Convenience method for creating weights from categorical data.
  
      Args:
          data (list-like): The data from which to construct the estimate.
  
      Returns:
          A new partition object::
  
              {
                  "partition": (list) The categorical values present in the data
                  "weights": (list) The weights of the values in the partition.
              }