Python ';值错误';在输入数据中的空值时

Python ';值错误';在输入数据中的空值时,python,pandas,numpy,Python,Pandas,Numpy,我正在处理一个数据集,在这个数据集中,我必须使用一些基本的“平均值”和“最常见值”方法,使用SimpleComputer填写“NA”值。为此,我划分了列并使用这些方法进行插补,但我得到一个错误ValueError:当使用ndarray设置时,必须具有相等的len键和值。 在分类插补和数据集未拆分时,一切都很好 代码如下: cat_col = [col for col in X_train.columns if X_train[col].dtypes == 'object'] num_col =

我正在处理一个数据集,在这个数据集中,我必须使用一些基本的“平均值”和“最常见值”方法,使用SimpleComputer填写“NA”值。为此,我划分了列并使用这些方法进行插补,但我得到一个错误
ValueError:当使用ndarray设置时,必须具有相等的len键和值。
在分类插补和数据集未拆分时,一切都很好

代码如下:

cat_col = [col for col in X_train.columns if X_train[col].dtypes == 'object']
num_col = [col for col in X_train.columns if col not in cat_col]

num_impute = SimpleImputer(missing_values=np.NaN, strategy = 'mean')
cat_impute = SimpleImputer(missing_values=np.NaN, strategy = 'most_frequent')
num_impute.fit(X_train[num_col])
cat_impute.fit(X_train[cat_col])

X_train[num_col] = num_impute.transform(X_train[num_col])
X_train[cat_col] = cat_impute.transform(X_train[cat_col])

这是

您能在这里展示一个简单的代码/数据集示例吗?我已经添加了这两个元素,我已经快速地通过调试器运行了它,而且
transform
函数似乎改变了中间容器的维度,因此它最终拥有122个num\u col列,而不是123个。但随后尝试分配给指定的容器进行返回,结果发现大小不匹配。要测试它,请使用一个临时容器:
temp=num\u impute.transform(X\u train[num\u col])
,然后返回一个包含4464行和122列的数据数组。在这种情况下,它不适用。希望这有帮助