diff --git a/giskard/push/perturbation.py b/giskard/push/perturbation.py index 96cdafaa8e..a29b09a057 100644 --- a/giskard/push/perturbation.py +++ b/giskard/push/perturbation.py @@ -11,6 +11,7 @@ from typing import Optional import hashlib +import numbers import numpy as np import pandas as pd @@ -35,6 +36,14 @@ from ..push import PerturbationPush +try: + from pandas.api.types import is_any_real_numeric_dtype +except ImportError: + + def is_any_real_numeric_dtype(array: np.array) -> bool: + return issubclass(array.dtype.type, numbers.Real) + + text_transformation_list = [ TextLowercase, TextUppercase, @@ -121,7 +130,7 @@ def _apply_perturbation( ds_slice_copy = ds_slice.copy() # Apply the transformation - if col_type == SupportedPerturbationType.NUMERIC: + if col_type == SupportedPerturbationType.NUMERIC and is_any_real_numeric_dtype(ds_slice.df[feature]): passed = _numeric( ds, ds_slice,