code: def impute(df_impute):
      
      col_to_max, col_to_min, col_to_median = get_range_values_per_column(df_impute)
      df_impute = impute_dataframe_range(df_impute, col_to_max, col_to_min, col_to_median)
  
      # Ensure a type of "np.float64"
      df_impute.astype(np.float64, copy=False)
      return df_impute
docs: Columnwise replaces all ``NaNs`` and ``infs`` from the DataFrame `df_impute` with average/extreme values from
      the same columns. This is done as follows: Each occurring ``inf`` or ``NaN`` in `df_impute` is replaced by
  
          * ``-inf`` -> ``min``
          * ``+inf`` -> ``max``
          * ``NaN`` -> ``median``
  
      If the column does not contain finite values at all, it is filled with zeros.
  
      This function modifies `df_impute` in place. After that, df_impute is guaranteed to not contain any non-finite
      values. Also, all columns will be guaranteed to be of type ``np.float64``.
  
      :param df_impute: DataFrame to impute
      :type df_impute: pandas.DataFrame
  
      :return df_impute: imputed DataFrame
      :rtype df_impute: pandas.DataFrame