code: def _find_string_floats(X, dirty_float_threshold):
      if not isinstance(X, pd.DataFrame):
          # FIXME workaround to accept series
          X = pd.DataFrame(X)
      is_float = X.apply(_float_matching)
      clean_float_string = is_float.all()
      # remove 5 most common string values before checking if the rest is float
      # FIXME 5 hardcoded!!
      dirty_float = pd.Series(0, index=X.columns, dtype=bool)
      for col in X.columns:
          if clean_float_string[col]:
              # already know it's clean
              continue
          X_col = X[col]
          common_distinct_values = X_col.value_counts()[:5].index
          is_common = X_col.isin(common_distinct_values) | X_col.isna()
          if (
              is_float.loc[~is_common, col].mean()
              > dirty_float_threshold
          ):
              dirty_float[col] = 1
  
      return clean_float_string, dirty_float
  
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 5 for calling a global function with example usage: _find_string_floats(X, dirty_float_threshold) and returns: clean_float_string,  dirty_float