如何使用Dataframe Apply功能对数据进行规范化

时间:2020-02-14 10:52:48

标签: python pandas

我正在尝试使用已经获得的均值和标准差值对新数据进行标准化。

t = np.array([[1,2,3],
     [4,5,6],
     [7,8,9]])

tt = np.array([[1,1,1],
     [100,100,100]])

a = pd.DataFrame(t, columns=['a','b','c'])
b = pd.DataFrame(tt, columns=['a', 'b', 'c'], index=['mean', 'std'])

def standardize(x, y):
    return (x - y.loc['mean']) / y.loc['std']

'a, b Dataframe '

a.apply(standardize(a,b))

我想获得归一化的数据框,每个值都通过“ b”数据框的均值和具有应用功能的每一列的std来计算

ex)a [0] ['a'] =(a [0] ['a']-b ['mean'] ['a'])/ b ['std'] [a]

任何更好的方法也都可以。谢谢。

2 个答案:

答案 0 :(得分:0)

(a-b.loc['mean'])/b.loc['std']

如果将b定义为b=b.T,则

(a-b['mean'])/b['std']

答案 1 :(得分:0)

您已经拥有它。用standardize(a,b)代替a.apply(standardize(a,b))