在Python中如何用numpy数组列替换dataframe列?

在Python中如何用numpy数组列替换dataframe列?,python,arrays,pandas,numpy,dataframe,Python,Arrays,Pandas,Numpy,Dataframe,以下是我目前掌握的情况: data.shape: # data == my dataframe (768, 9) data2 = pd.DataFrame(data) # copy of data array = data.values # convert data to arrays X = array[:,0:8] Y = array[:,8] # perform a transformation on X Xrescaled = scaler.transform(

以下是我目前掌握的情况:

data.shape:     # data == my dataframe
(768, 9)
data2 = pd.DataFrame(data)   # copy of data

array = data.values      # convert data to arrays
X = array[:,0:8]
Y = array[:,8]

# perform a transformation on X
Xrescaled = scaler.transform(X)

如何将数据帧的每一列,
data2
替换为数组中相应的列,
Xrescaled
?谢谢。

您只需执行以下操作:
data2.iloc[:,:8]=Xrescaled
,下面是一个演示:

import numpy as np
data = pd.DataFrame({'x': [1,2], 'y': [3,4], 'z': [5,6]})

data
#   x   y   z
#0  1   3   5
#1  2   4   6

import pandas as pd
data2 = pd.DataFrame(data)

data2
#   x   y   z
#0  1   3   5
#1  2   4   6    

X = data.values[:,:2]
Xrescaled = X * 2

Xrescaled
# array([[2, 6],
#        [4, 8]])

data2.iloc[:,:2] = Xrescaled
data2
#   x   y   z
#0  2   6   5
#1  4   8   6

谢谢你,普西多姆。关于“data2=pd.DataFrame(data)#数据副本”的最初假设,由于参考问题,我遇到了一些问题,将其更改为“data2=copy.deepcopy(data)#”,但是,您的解决方案对我有效。谢谢。