如何从特定列中删除行以准备SVR的培训和测试集

2024-06-01 04:25:46 发布

您现在位置:Python中文网/ 问答频道 /正文

一个数据集有多个2500 rows22 columns,包括age column。我已经完成了SVR的所有流程。事情还在继续。但我仍然不得不面对一个错误。那就是raise ValueError("bad input shape {0}".format(shape)), ValueError: bad input shape (977, 57)。我的输入是SupportVectorRefModel.fit(X_train, y_train)。我如何解决这个问题

from sklearn.model_selection 
import train_test_split 
from sklearn.svm import SVR 

X_train, y_train = dataset.loc[:1000], dataset.loc[:1000] 
X_test, y_test = dataset.loc[1001], dataset.loc[1001] 
train_X, train_y = X_train.drop(columns=['age']), y_train.pop('age')
test_X, test_y = X_test.drop(columns=['age']), y_test.pop('age')

raise ValueError("bad input shape {0}".format(shape))
ValueError: bad input shape (977, 57)

Tags: columnsfromtestformatinputagetrainsklearn
1条回答
网友
1楼 · 发布于 2024-06-01 04:25:46

如果要删除给定列的前x行,请使用DataFrame.drop

df = df.drop(range(end))

其中end是要从数据集开头删除的行数

注意:不能仅从单个列中删除元素。您必须删除所有行或用NaN或其他替换值替换删除的值

更新

OP进一步澄清后,最终结果是从X_*数据帧中删除age列,并将age列存储在其自己的数据帧*_y

from sklearn.model_selection 
import train_test_split 
from sklearn.svm import SVR 

X_train, y_train = dataset.loc[:1000], dataset.loc[:1000] 
X_test, y_test = dataset.loc[1001], dataset.loc[1001] 
train_X, train_y = X_train.drop(columns=['age']), y_train.pop('age')
test_X, test_y = X_test.drop(columns=['age']), y_test.pop('age')

应该会给你想要的最终结果

相关问题 更多 >