【问题标题】:How to modify all values in a pandas dataframe with another numpy array如何使用另一个 numpy 数组修改 pandas 数据框中的所有值
【发布时间】:2019-01-12 09:49:09
【问题描述】:

我有以下代码示例

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

但我得到了错误(我知道)

AttributeError: can't set attribute

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

谢谢。

【问题讨论】:

    标签: python arrays pandas dataframe modifier


    【解决方案1】:

    你不需要调用价值

    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
    

    【讨论】:

    • 嘿,现在我想用类似的东西替换 d 列
    • [1, 0, 0], [0, 1, 0], [0, 0, 1] 对于每个类别 q、w 和 r。我怎样才能 ?谢谢。
    • @mctrjallohdf.d=[[1, 0, 0], [0, 1, 0], [0, 0, 1]]
    • 因为我想让它准备好训练一个 keras 模型分类器
    • 我想首先计算那些二进制向量
    猜你喜欢
    • 1970-01-01
    • 2015-02-23
    • 1970-01-01
    • 2020-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多