text: import pandas as pd 
  import numpy as np 
  import math
  
  num_attributes = df1.select_dtypes( include=['int64', 'float64'] )
  cat_attributes = df1.select_dtypes( exclude=['int64', 'float64', 'datetime64[ns]'] )
  
  def get_summary(numerical_attributes):
      
      # Central Tendency - mean, meadina 
      ct1 = pd.DataFrame( numerical_attributes.apply( np.mean ) ).T
      ct2 = pd.DataFrame( numerical_attributes.apply( np.median ) ).T
  
      # dispersion - std, min, max, range, skew, kurtosis
      d1 = pd.DataFrame( numerical_attributes.apply( np.std ) ).T 
      d2 = pd.DataFrame( numerical_attributes.apply( min ) ).T 
      d3 = pd.DataFrame( numerical_attributes.apply( max ) ).T 
      d4 = pd.DataFrame( numerical_attributes.apply( lambda x: x.max() - x.min() ) ).T 
      d5 = pd.DataFrame( numerical_attributes.apply( lambda x: x.skew() ) ).T 
      d6 = pd.DataFrame( numerical_attributes.apply( lambda x: x.kurtosis() ) ).T 
  
      # concatenar
      m = pd.concat( [d2, d3, d4, ct1, ct2, d1, d5, d6] ).T.reset_index()
      m.columns = ['attributes', 'min', 'max', 'range', 'mean', 'median', 'std', 'skew', 'kurtosis']
      
      return m
  