системная ошибка sklearn SimpelImputer: вернула результат с ошибкой

#python #scikit-learn

#python #scikit-learn

Вопрос:

Я вменяю пропущенные значения в конвейере.

введите описание изображения здесь

На первом шаге я записываю переменную в бин, используя:

 df_listings['original.listing.rooms.bedrooms.count'] = pd.cut(df_listings['original.listing.rooms.bedrooms.count'], bins = [1,2,3,4,5,6,10,50])
df_listings = df_listings.fillna(np.nan)
  

введите описание изображения здесь

На втором шаге я хочу приписать столбец, используя

 si = SimpleImputer(missing_values=np.nan,strategy="most_frequent")
si.fit_transform(df_listings[['original.listing.rooms.bedrooms.count']])
  

Несмотря на то, что я следовал этому потоку с другими переменными, здесь я получаю следующую ошибку:

 TypeError: unsupported operand type(s) for  : 'pandas._libs.interval.Interval' and 'pandas._libs.interval.Interval'

The above exception was the direct cause of the following exception:


...

SystemError: <built-in function _abc_instancecheck> returned a result with an error set
  

Я не могу понять причину, по которой я получаю эту ошибку. Для других переменных я могу работать с pandas.Интервал, только эта переменная вызывает проблему.

Ответ №1:

Поскольку мы работаем с категориальными данными, добавление .astype(str) в ваш pd.cut делает свое дело.

 df_listings['original.listing.rooms.bedrooms.count'] = pd.cut(df_listings['original.listing.rooms.bedrooms.count'], bins = [1,2,3,4,5,6,10,50]).astype(str)