反向 z 分数 pandas 数据框

Nic*_*lia 6 python normalization pandas

我用它来计算数据帧的 z 分数:

df_z=df.apply(zscore)
Run Code Online (Sandbox Code Playgroud)

有没有可以给我原始值的反向操作?

小智 4

没有内置方法可以从 df_z(z 分数)返回到 df(原始值)。但是,您可以相当轻松地做到这一点,如下所示:

第 1 步:跟踪所有原始变量的平均值和标准差。也许是这样的:

mean_std={}
for var in df.columns:
    mean_std[var]=(df[var].mean(), df[var].std())
Run Code Online (Sandbox Code Playgroud)

第 2 步:转换回 z 分数

def reverse_zscore(pandas_series, mean, std):
    '''Mean and standard deviation should be of original variable before standardization'''
    yis=pandas_series*std+mean
    return yis

original_mean, original_std = mean_std[var]
original_var_series = reverse_zscore(df_z[var], original_mean, original_std)
Run Code Online (Sandbox Code Playgroud)

或者,只需将原始数据框存储在某处