在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)#”,但是,您的解决方案对我有效。谢谢。