code: def fit(self, X, y=None):
      # FIXME clean float columns will make this fail
      if not isinstance(X, pd.DataFrame):
          raise TypeError(
              "X is not a dataframe. Convert or call `clean`."
          )
      encoders = {}
      for col in X.columns:
          floats, X_col = _float_matching_fetch(
              X, col, return_safe_col=True
          )
          # FIXME sparse
          if (~floats).any():
              ohe_args = (
                  {"sparse_output": False}
                  if _SKLEARN_VERSION >= "1.2"
                  else {"sparse": False}
              )
              ohe = OneHotEncoder(handle_unknown="ignore", **ohe_args)
              encoders[col] = ohe.fit(pd.DataFrame(X_col[~floats]))
          else:
              encoders[col] = None
      self.encoders_ = encoders
      self.columns_ = X.columns
      return self
  
imports: from importlib.metadata import version
  from joblib import hash
  import warnings
  from warnings import warn
  import numpy
  import pandas
  from sklearn.base import BaseEstimator, TransformerMixin
  from sklearn.compose import make_column_transformer, ColumnTransformer
  from sklearn.impute import SimpleImputer
  from sklearn.pipeline import make_pipeline
  from sklearn.preprocessing import OneHotEncoder, StandardScaler
  from sklearn.utils.validation import check_is_fitted
label_desc: Use image node_id 1 for calling the DirtyFloatCleaner obj's underlying member method code with example usage: obj.fit(X, y) and returns: self