class_docstr: Shared methods across categorical transformers.
  
  - BaseEstimator brings methods get_params() and set_params().
  - TransformerMixin brings method fit_transform()
  - GetFeatureNamesOutMixin brings method get_feature_names_out().
class_docstr_tok: ["Shared","methods","across","categorical","transformers",".","-","BaseEstimator","brings","methods","get_params","(",")","and","set_params","(",")",".","-","TransformerMixin","brings","method","fit_transform","(",")","-","GetFeatureNamesOutMixin","brings","method","get_feature_names_out","(",")","."]
code: def _check_nan_values_after_transformation(self, X):
      # check if NaN values were introduced by the encoding
      if X[self.variables_].isnull().sum().sum() > 0:
          # obtain the name(s) of the columns have null values
          nan_columns = (
              X[self.encoder_dict_.keys()]
              .columns[X[self.encoder_dict_.keys()].isnull().any()]
              .tolist()
          )
  
          if len(nan_columns) > 1:
              nan_columns_str = ", ".join(nan_columns)
          else:
              nan_columns_str = nan_columns[0]
  
          if self.unseen == "ignore":
              warnings.warn(
                  "During the encoding, NaN values were introduced in the feature(s) "
                  f"{nan_columns_str}."
              )
          elif self.unseen == "raise":
              raise ValueError(
                  "During the encoding, NaN values were introduced in the feature(s) "
                  f"{nan_columns_str}."
              )
  
imports: import warnings
  from typing import List, Union
  import pandas
  from sklearn.base import BaseEstimator, TransformerMixin
  from sklearn.utils.validation import check_is_fitted
  from feature_engine._base_transformers.mixins import GetFeatureNamesOutMixin
  from feature_engine._docstrings.init_parameters import _ignore_format_docstring, _variables_categorical_docstring
  from feature_engine._docstrings.substitute import Substitution
  from feature_engine._variable_handling.init_parameter_checks import _check_init_parameter_variables
  from feature_engine._variable_handling.variable_type_selection import _find_all_variables, _find_or_check_categorical_variables
  from feature_engine.dataframe_checks import _check_contains_na, _check_X_matches_training_df, check_X
  from feature_engine.tags import _return_tags
label_desc: Use image node_id 6 for calling the CategoricalMethodsMixin obj's underlying member method code with example usage: obj._check_nan_values_after_transformation(X) without return types