使用 iloc 将列数据复制到另一个数据框中 [关闭]
Posted
技术标签:
【中文标题】使用 iloc 将列数据复制到另一个数据框中 [关闭]【英文标题】:copying column data into another dataframe using iloc [closed] 【发布时间】:2021-08-12 04:49:20 【问题描述】:拆分后 x_train ,y_train 。
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
。价格是新列
x_train['Price']=y_train
但这不起作用
我正在尝试像下面这样使用 iloc,但它会发出警告
x_train['price']=y_train.iloc[0:354]
请帮我解决这个问题
【问题讨论】:
【参考方案1】:您会收到该警告,因为x_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
如果我尝试运行您的代码,我会收到同样的警告。
请参阅this post 了解有关数据框的视图以及有关处理警告的this。如果您认为这不是问题,您可以做些什么来制作副本:
x_train = x_train.copy()
x_train['Price'] = y_train
或者使用插入:
x_train.insert(x_train.shape[1],"Price",y_train)
【讨论】:
以上是关于使用 iloc 将列数据复制到另一个数据框中 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章