code: def predict(self, times):
          
          if callable(self._estimation_method):
              return pd.DataFrame(self._estimation_method(_to_array(times)), index=_to_array(times)).loc[times].squeeze()
          estimate = getattr(self, self._estimation_method)
          # non-linear interpolations can push the survival curves above 1 and below 0.
          return dataframe_interpolate_at_times(estimate, times)
docs: Predict the {0} at certain point in time. Uses a linear interpolation if
          points in time are not in the index.
  
          Parameters
          ----------
          times: a scalar or an array of times to predict the value of {0} at.
  
          Returns
          -------
          predictions: a scalar if time is a scalar, a numpy array if time in an array.