神经网络分类任务创建DataFrame遇ValueError: Data must be 1-Dimensional错误
分类任务预测结果与测试集列合并成DataFrame的报错解决
核心问题与修复方案
维度不匹配(最常见原因)
神经网络输出的预测结果y_pred一般是二维数组(比如形状为(样本数, 1)),而测试集提取的列是pandas一维Series,维度不一致触发报错。
修复代码:
import pandas as pd # 将二维预测结果转为一维数组 result_df = pd.DataFrame({ '测试集目标列': test_df['你要提取的列名'], '预测结果': y_pred.ravel() # 或y_pred.flatten(),两者都能实现降维 })
索引不匹配
若测试集索引不是连续整数(比如有缺失或自定义索引),会和默认从0开始的预测结果索引不匹配,导致报错。
修复代码:
# 重置测试集索引,避免索引冲突 test_df = test_df.reset_index(drop=True) result_df = pd.DataFrame({ '测试集目标列': test_df['你要提取的列名'], '预测结果': y_pred.ravel() })
前置验证步骤
创建DataFrame前先确认两者长度一致,避免无效调试:
# 检查测试集列长度与预测结果长度 print("测试集列长度:", len(test_df['你要提取的列名'])) print("预测结果长度:", len(y_pred.ravel()))
内容的提问来源于stack exchange,提问作者Shankha Saha
相关产品推荐
相关产品推荐

