in causalml/metrics/visualize.py [0:0]
def _get_numeric_vars(X, threshold=5):
"""Attempt to determine which variables are numeric and which
are categorical. The threshold for a 'continuous' variable
is set to 5 by default.
"""
cont = [
(not hasattr(X.iloc[:, i], "cat")) and (X.iloc[:, i].nunique() >= threshold)
for i in range(X.shape[1])
]
prop = [X.iloc[:, i].nunique() == 2 for i in range(X.shape[1])]
cont_cols = list(X.loc[:, cont].columns)
prop_cols = list(X.loc[:, prop].columns)
dropped = set(X.columns) - set(cont_cols + prop_cols)
if dropped:
logger.info(
'Some non-binary variables were dropped because they had fewer than {} unique values or were of the \
dtype "cat". The dropped variables are: {}'.format(
threshold, dropped
)
)
return cont_cols, prop_cols