【发布时间】:2020-04-27 07:57:33
【问题描述】:
我正在使用 python3 (spyder),并且我有一个表,它是对象“pandas.core.frame.DataFrame”的类型。我想对该表中的值进行 z-score 标准化(每个值减去其行的平均值并除以其行的 sd),因此每行的均值 = 0 和 sd = 1。我尝试了两种方法。
第一种方法
from scipy.stats import zscore
zetascore_table=zscore(table,axis=1)
第二种方法
rows=table.index.values
columns=table.columns
import numpy as np
for i in range(len(rows)):
for j in range(len(columns)):
table.loc[rows[i],columns[j]]=(table.loc[rows[i],columns[j]] - np.mean(table.loc[rows[i],]))/np.std(table.loc[rows[i],])
table
这两种方法似乎都有效,但是当我检查每行的平均值和标准差时,它不是假设的 0 和 1,而是其他浮点值。我不知道可能是哪个问题。
提前感谢您的帮助!
【问题讨论】:
标签: python-3.x pandas spyder normalization