Python 如何使用另一个numpy数组修改数据帧中的所有值

Python 如何使用另一个numpy数组修改数据帧中的所有值,python,arrays,pandas,dataframe,modifier,Python,Arrays,Pandas,Dataframe,Modifier,我有下面的代码示例 import pandas as pd df = pd.DataFrame({'a':[1, 2, 3], 'b':[10, 20, 30], 'c':[100, 200, 300], 'd':['q', 'w', 'r']}) 获取数据帧的值 In [12]: df[['a', 'b', 'c']].values Out[12]: array([[ 1,

我有下面的代码示例

import pandas as pd

df = pd.DataFrame({'a':[1, 2, 3],
                   'b':[10, 20, 30],
                   'c':[100, 200, 300],
                   'd':['q', 'w', 'r']})
获取数据帧的值

In [12]: df[['a', 'b', 'c']].values
Out[12]: 
array([[  1,  10, 100],
       [  2,  20, 200],
       [  3,  30, 300]])
然后我规范化这些值

from sklearn.preprocessing import normalize

norm = normalize(df[['a', 'b', 'c']].values, axis=0)

In [11]: norm
Out[11]: 
array([[0.26726124, 0.26726124, 0.26726124],
       [0.53452248, 0.53452248, 0.53452248],
       [0.80178373, 0.80178373, 0.80178373]])
现在我想做一些类似的事情

df[['a', 'b', 'c']].values = norm
但是我得到了错误(我知道)

如何修改这些值而不影响数据帧的其他部分(即列“e”和索引);只是价值观


谢谢。

您不需要呼叫值

df[['a', 'b', 'c']]=norm
df
Out[342]: 
          a         b         c  d
0  0.267261  0.267261  0.267261  q
1  0.534522  0.534522  0.534522  w
2  0.801784  0.801784  0.801784  r

现在我想用[1,0,0],[0,1,0],[0,0,1]来替换列d,对于每个类别q,w和r。我该怎么办?谢谢。@mctrjalloh
df.d=[[1,0,0],[0,1,0],[0,0,1]]
因为我想让它准备好训练keras模型分类器,我想首先计算这些二进制向量
df[['a', 'b', 'c']]=norm
df
Out[342]: 
          a         b         c  d
0  0.267261  0.267261  0.267261  q
1  0.534522  0.534522  0.534522  w
2  0.801784  0.801784  0.801784  r