Python 使用iloc将列数据复制到另一个数据帧
分开x_列车后,y_列车Python 使用iloc将列数据复制到另一个数据帧,python,pandas,scikit-learn,Python,Pandas,Scikit Learn,分开x_列车后,y_列车 x_train, x_test, y_train, y_test = train_test_split(X, Y, test_size = 0.3) print(x_train.shape,y_train.shape) (354, 13) (354,) 我需要再次将ytrain列加入xtrain。Price是新列 x_-train['Price']=y_-train但这不起作用 我试图像下面这样使用iloc,但它给出了警告 x_train['price']=y_tra
x_train, x_test, y_train, y_test = train_test_split(X, Y, test_size = 0.3)
print(x_train.shape,y_train.shape)
(354, 13) (354,)
我需要再次将ytrain
列加入xtrain
。Price是新列
x_-train['Price']=y_-train
但这不起作用
我试图像下面这样使用iloc,但它给出了警告
x_train['price']=y_train.iloc[0:354]
请帮我解决这个问题。您得到了那个警告,因为
x\u train
是x
的视图。举个例子:
df = pd.DataFrame(np.random.uniform(0,1,(100,4)),
columns=['x1','x2','x3','y'])
X = df[['x1','x2','x3']]
Y = df[['y']]
x_train, x_test, y_train, y_test = train_test_split(X, Y, test_size = 0.3)
你可以看到:
x_train._is_view
True
如果我试图运行你的代码,我会得到同样的警告
请参见“关于数据框视图”和“关于处理警告”。如果你不认为这是一个问题,你可以做什么复制:
x_train = x_train.copy()
x_train['Price'] = y_train
或使用插入:
x_train.insert(x_train.shape[1],"Price",y_train)