我正在使用sklearn标准缩放器来规范化pandas数据框中的某些列。虽然fit_transform按预期工作,但转换却没有。这是我的工作:
non_categorical_variable = ['var1','var5']
scaler = StandardScaler()
train[non_categorical_variable] = scaler.fit_transform(train[non_categorical_variable])
它完美无缺,但这不起作用:
test[non_categorical_variable] = scaler.transform(test[non_categorical_variable])
这是错误消息:
文件“main_FM.py”,第286行,在predict_first_stage
中test [non_categorical_features] = scaler.transform(test [non_categorical_features])
TypeError:'coo_matrix'对象没有属性' getitem '
现在,如果我只输入以下内容,则一切正常并匹配。
print test[non_categorical_variable]
print scaler.transform(test[non_categorical_variable])
print type(test[non_categorical_variable])
print type(scaler.transform(test[non_categorical_variable]))
print test[non_categorical_variable].shape
print scaler.transform(test[non_categorical_variable]).shape
感谢您的帮助!
答案 0 :(得分:0)
可能test
是稀疏矩阵,而train
则不是。{1}}。因此test[non_categorical_variable]
失败,因为稀疏矩阵不支持gettitem接口。
如果您正在使用OneHotEncoder,则可以将其sparse
参数设置为false。