Ошибка недопустимого сравнения python при сканировании на наличие выбросов

#python #pandas #outliers

#python #pandas #выбросы

Вопрос:

Я пытаюсь извлечь выбросы из фрейма данных pandas. Я хотел извлечь их по межквантовому расстоянию, но это вызвало «TypeError: недопустимое сравнение между dtype = float64 и str», но я не вижу, где это строка или значение с плавающей точкой, когда я проверил обе вещи, которые я сравнивал, upp_iqr, low_iqr, где pandas.core.series.Серия и прайс-лист представляли собой pandas.core.frame.Фрейм данных. Фрейм данных содержит только числа в своих ячейках. Это мой код:

     prices_list = df.filter(regex='Price')
    q1 = prices_list.quantile(0.25)
    q3 = prices_list.quantile(0.75)
    iqr = q3 - q1
    low_iqr = q1 - (1.5 * iqr)
    upp_iqr = q3   (1.5 * iqr)
    if any(x > low_iqr for x in prices_list):
        print("check_outlier: False")
        logging.debug(print(price_outliers))
    else:
        print("check_outlier: False")
        logging.debug(print(price_outliers))
  

Я ожидал, что он вернет фрейм данных с их значениями и позициями. Любая помощь была бы оценена, пожалуйста, и спасибо вам

Комментарии:

1. Что такое prices_list.dtypes ?

2. Это pandas.core.frame. Фрейм данных. Все является либо фреймом данных, либо серией

3. Но я запрашиваю print (prices_list.dtypes) не для print (type(prices_list))

4. В нем говорится, что upp low_iqr является float64 и что prices_list не имеет типа атрибута. Извините, не знал об этом, спасибо