code: def _exclude_missing_targets(self, X=None, y=None):
      # check if there are missing values in target column
      if y is None:
          return X, y
      y_missing = pd.isnull(y)
      if np.sum(np.array(y_missing)) == 0:
          return X, y
      y = y.drop(y.index[y_missing])
      y.index = range(y.shape[0])
      if X is not None:
          X = X.drop(X.index[y_missing])
          X.index = range(X.shape[0])
      return X, y
  
imports: import copy
  import logging
  import warnings
  import numpy
  import pandas
  from supervised.algorithms.registry import BINARY_CLASSIFICATION, MULTICLASS_CLASSIFICATION, REGRESSION
  from supervised.exceptions import AutoMLException
  from supervised.preprocessing.datetime_transformer import DateTimeTransformer
  from supervised.preprocessing.exclude_missing_target import ExcludeRowsMissingTarget
  from supervised.preprocessing.goldenfeatures_transformer import GoldenFeaturesTransformer
  from supervised.preprocessing.kmeans_transformer import KMeansTransformer
  from supervised.preprocessing.label_binarizer import LabelBinarizer
  from supervised.preprocessing.label_encoder import LabelEncoder
  from supervised.preprocessing.preprocessing_categorical import PreprocessingCategorical
  from supervised.preprocessing.preprocessing_missing import PreprocessingMissingValues
  from supervised.preprocessing.preprocessing_utils import PreprocessingUtils
  from supervised.preprocessing.scale import Scale
  from supervised.preprocessing.text_transformer import TextTransformer
  from supervised.utils.config import LOG_LEVEL
label_desc: Use image node_id 2 for calling the Preprocessing obj's underlying member method code with example usage: obj._exclude_missing_targets(X, y) and returns: X,  y, X,  y, X,  y