Python 使用熊猫进行Z分数计算/标准化

Python 使用熊猫进行Z分数计算/标准化,python,pandas,dataframe,Python,Pandas,Dataframe,我碰到这个,它让我很烦 基本上,在,他们通过以下代码段计算整个数据帧的Z分数: df_z = (df - df.describle.T['mean'])/df.describle.T['std'] 这是一条整齐美丽的线 但是,df.descripble.T看起来像,而df看起来像 df.descripable.T['mean']和df.descripable.T['std']是两个独立的系列,它们以df列名称作为索引,以descripable统计参数作为列,而df是一个普通的pd.DataFr

我碰到这个,它让我很烦

基本上,在,他们通过以下代码段计算整个数据帧的Z分数:

df_z = (df - df.describle.T['mean'])/df.describle.T['std']
这是一条整齐美丽的线

但是,
df.descripble.T
看起来像,而
df
看起来像

df.descripable.T['mean']
df.descripable.T['std']
是两个独立的系列,它们以
df
列名称作为索引,以
descripable
统计参数作为列,而
df
是一个普通的
pd.DataFrame
,在正确的位置有数字索引和列名称

我的问题是:当它们根本不匹配时,这条线有什么意义,特别是,它们如何确保每个变量示例(x_i)都匹配它们的平均值或std


谢谢。

我看到了
(x-train_stats['mean'])/train_stats['std']
,这在我看来是有意义的。换位(.T)的发生只是因为在你的df和df中,可描述的行和列都发生了变化,没有旁注:这看起来像
T得分
,而不是
z得分
@Nils-Werner-see,
train\u stats=train\u stats.transpose()
。即使它没有被转置,它对我来说也没有意义,因为我认为
df
-
series
,因为它们的行数相同,应该是逐行操作。而
descripe
返回具有
shape
(p,c)的df,其中
p
是参数的数量,
c
是列的数量。换句话说,即使它们被逐行减去,结果也没有任何意义,因为col_i不仅减去了它的意思,还减去了其他参数。