简体   繁体   English

如何使用 Dataframe 应用函数来规范化数据

[英]How do I use Dataframe apply function to normalize Data

I'm trying to normalize new data with the mean and std values which I already have got.我正在尝试使用我已经获得的均值和标准值来规范化新数据。

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 数据框 '

a.apply(standardize(a,b))

I want to get normalized dataframe that each values is calculated by 'b' dataframe's mean and std on each columns with apply function我想得到标准化的数据帧,每个值都是由'b' 数据帧的平均值和标准在每列上使用应用函数计算的

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

any better ways would be fine as well.任何更好的方法也可以。 Thanks..谢谢..

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

如果您将b定义为b=bT ,则

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

You already have it.你已经拥有了。 Do standardize(a,b) instead of a.apply(standardize(a,b)) .使用standardize(a,b)而不是a.apply(standardize(a,b))

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM