docstr: Segment customers.
  
  Args:
      features (list): The features to use for the segmentation.
      n_clusters (int): The number of clusters.
  
  Returns:
      DataFrameType: The DataFrame containing the segmentation.
docstr_tok: ["Segment","customers",".","Args",":","features","(","list",")",":","The","features","to","use","for","the","segmentation",".","n_clusters","(","int",")",":","The","number","of","clusters",".","Returns",":","DataFrameType",":","The","DataFrame","containing","the","segmentation","."]
code: def segment_customers(
      self, features: list, n_clusters: int
  ) -> DataFrameType:
      """
      Segment customers.
  
      Args:
          features (list): The features to use for the segmentation.
          n_clusters (int): The number of clusters.
  
      Returns:
          DataFrameType: The DataFrame containing the segmentation.
      """
  
      return self.chat(
          f"""
  Segment customers with the following features and number of clusters:
  features = {features}
  n_clusters = {n_clusters}
  """
      )
  
imports: from ..helpers.df_info import DataFrameType
  from typing import Union
  from abc import ABC, abstractmethod
label_desc: Use image node_id 17 for calling the Shortcuts obj's underlying member method code with example usage: obj.segment_customers(features, n_clusters) and returns: self