docs: def impute_using_statistics(df, method='min'):
          """
          Imputes the missing values by the selected statistical property of each column
  
          :param df: The input dataframe that contains missing values
          :param method: The imputation method (min by default)
              "zero": fill missing entries with zeros
              "mean": fill with column means
              "median" : fill with column medians
              "min": fill with min value per column
              "random": fill with gaussian noise according to mean/std of column
          :return: the imputed dataframe
          """
          sf = SimpleFill(method)
          imputed_matrix = sf.complete(df.values)
          imputed_df = pd.DataFrame(imputed_matrix, df.index, df.columns)
          return imputed_df