使用 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_trainX 的视图。举个例子:

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 将列数据复制到另一个数据框中 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

将列中的所有值复制到熊猫数据框中的新列

使用 iloc 从数据框中切片多个列范围

使用 PowerShell 将列从一个 csv 文件复制到另一个

使用条件将列更改为单独的数据框

如何将列从一个 CSV 文件复制到另一个 CSV 文件?

使用 Pandas 迭代地将列添加到数据框中