in src/smclarify/bias/metrics/common.py [0:0]
def ensure_series_data_type(series: pd.Series, values: Optional[List[Any]] = None) -> Tuple[DataType, pd.Series]:
"""
Determine the type of the given data series using set of rules, and then do necessary type conversion
to ensure the series data type.
:param series: data for facet/label/predicted_label columns
:param values: list of facet or label values provided by user
:return: A tuple of DataType and the converted data series
"""
data_type = series_datatype(series, values)
if data_type == DataType.CATEGORICAL:
return data_type, series.astype("category")
elif data_type == DataType.CONTINUOUS:
if values:
if not (isinstance(values[0], int) or isinstance(values[0], float)):
try:
values[0] = float(values[0])
except ValueError:
raise ValueError(
"Facet/label value provided must be a single numeric threshold for continuous data"
)
return data_type, pd.to_numeric(series)
raise ValueError("Data series is invalid or can't be classified as neither categorical nor continous.")