Python 使用iloc将列数据复制到另一个数据帧

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_列车后,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_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)