You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用KNN Imputation拼接变量时触发numpy.ndarray类型错误如何解决?

错误触发原因

该报错是你使用pd.concat()执行拼接时传入了不支持的参数类型导致的:
pd.concat()仅支持拼接pandas内置的Series、DataFrame类型对象,而KNN Imputation填充处理完成后默认返回的是numpy.ndarray类型的数组,你直接将填充后的数组传入pd.concat()的参数列表,就会触发上述类型不匹配错误。

修复方案

你只需要把KNN填充后的numpy数组先转为DataFrame/Series类型,再执行拼接即可,常用两种适配写法如下:

  • 情况1:填充的是多列特征,转为DataFrame
# 假设imputer是你初始化的KNNImputer实例,raw_feature是输入的原始待填充特征
imputed_arr = imputer.fit_transform(raw_feature)
# 转为DataFrame,columns参数指定和原特征一致的列名,避免拼接后列名混乱
imputed_df = pd.DataFrame(imputed_arr, columns=raw_feature.columns)
# 再执行拼接操作即可
final_df = pd.concat([other_df, imputed_df], axis=1)
  • 情况2:填充的是单列数据,转为Series
imputed_arr = imputer.fit_transform(raw_feature.reshape(-1,1)).flatten()
# 转为Series,name参数指定和原列一致的列名
imputed_series = pd.Series(imputed_arr, name=raw_feature.name)
final_df = pd.concat([other_df, imputed_series], axis=1)

内容的提问来源于stack exchange,提问作者Daana Ortiz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 16:39:01