numpy 如何使用每一列的平均值、标准将元素转换为Z值?

qjp7pelc  于 2022-11-10  发布在  其他
关注(0)|答案(1)|浏览(107)

我想知道如何使用Pandas和NumPy将每一列的值转换为某个值。

import pandas as pd
import numpy as np

matrix = [[1,2,3], [4,5,6], [7,8,9]]

原始矩阵
A|b|c
-|-|
1|2|3
4|5|6
7|8|9
输出矩阵
A|b|c
-|-|
-1.22|2|3
0|5|6
1.22|8|9
例如,列‘a’是[1,4,7]。
‘a’的平均值是4,‘a’的标准差是2.45,所以输出是[(1-4)/2.45,(4-4)/2.45,(7-4)/2.45]
如何使用PANDA和NumPy转换每个值?

m2xkgtsf

m2xkgtsf1#

使用:

matrix = [[1,2,3], [4,5,6], [7,8,9]]
df = pd.DataFrame(matrix, columns=list('abc'))

如果需要处理所有列,则用平均值减去所有值,并用ddof=0除以DataFrame.std,因为默认情况下是ddof=1

df = df.sub(df.mean()).div(df.std(ddof=0))
print (df)
          a         b         c
0 -1.224745 -1.224745 -1.224745
1  0.000000  0.000000  0.000000
2  1.224745  1.224745  1.224745

如果只需要处理一列:

df['a'] = df['a'].sub(df['a'].mean()).div(df['a'].std(ddof=0))
print (df)
          a  b  c
0 -1.224745  2  3
1  0.000000  5  6
2  1.224745  8  9

相关问题