Функция выполняется бесконечно 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 бинов.

→ Ссылка