如何在Python中用NumPy数组列替换数据框列?

3
这是我目前的翻译内容:

以下是我的进展:

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)

我该如何用数组Xrescaled对应的列来替换数据框data2中的每一列?谢谢。

1个回答

4
您可以直接执行以下操作: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

谢谢,Psidom。我在处理“data2 = pd.DataFrame(data) # copy of data”时遇到了一些问题,因为我最初的假设有误,所以我将其更改为“data2 = copy.deepcopy(data) # http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.copy.html”,以解决引用问题。然而,你的解决方案对我很有效。谢谢。 - Love and peace - Joe Codeswell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接