首页 > 解决方案 > SimpleImputer TypeError:在“str”和“int”的实例之间不支持“<”

问题描述

当我尝试估算此数据集时遇到问题。当我尝试收集对象类项来估算它们时,它会引发此错误。

TypeError:“str”和“int”的实例之间不支持“<”

import pandas as pd
import numpy as np
from sklearn.impute import SimpleImputer

impNumeric = SimpleImputer(missing_values=np.nan, strategy='mean')
impCategorical = SimpleImputer(missing_values=np.nan, 
                               strategy='most_frequent')

objects = group1.select_dtypes(include=np.object)
imputed = impCategorical.fit(objects).transform(objects) # line error

标签: pythonpandasnumpyscikit-learn

解决方案


我遇到了同样的问题,我找到了解决方法!object能够包含类型的解释是一个很好的提示。就我而言,错误是:TypeError: '<' not supported between instances of 'str' and 'NoneType'. 我仔细看了看:

df[df['categorical_column'].isnull()][categorical_columns]

确实,我混合了strNone。就我而言,修复明确说明了missing_values论点:

imputer_mod = SimpleImputer(missing_values=None, strategy='most_frequent')

在你的情况下,你混合了strand int。检查您的缺失值是如何编码的(可能通过0/ -1/-99等)并相应地调整您的missing_values论点。这应该可以解决问题!


推荐阅读