Функция выполняется бесконечно Python
Функция:
def binner(x, col):
if x == np.nan:
return 0
elif x <= np.quantile(binning_df[col].dropna(), 0.25):
return 1
elif x <= np.quantile(binning_df[col].dropna(), 0.5) and x > np.quantile(binning_df[col].dropna(), 0.25):
return 2
elif x <= np.quantile(binning_df[col].dropna(), 0.75) and x > np.quantile(binning_df[col].dropna(), 0.5):
return 3
elif x > np.quantile(binning_df[col].dropna(), 0.75):
return 4
Код:
binning_df.ar_revenue.apply(lambda x: binner(x, 'ar_revenue'))
Хочу, чтобы данные разбились по бинам, но функция выполняется бесконечно. Функция не заходит в if'ы.
Ответы (1 шт):
Автор решения: Max Pyankov
→ Ссылка
Нашел способ проще и быстрее, чтобы поделить данные на бины:
binning_df.ar_revenue = pd.qcut(binning_df.ar_revenue, 5, labels=[1, 2, 3, 4, 5])
Функция разделяет колонку с данными на 5 бинов.