反向 z 分数 pandas 数据框

Posted

技术标签:

【中文标题】反向 z 分数 pandas 数据框【英文标题】:Reverse z Score pandas dataframe 【发布时间】:2018-12-30 11:38:55 【问题描述】:

我正在使用它来计算我的数据框的 z 分数:

df_z=df.apply(zscore)

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

【问题讨论】:

或者可以手工完成吗? sklearn minmaxscaler 有一个这样的选项:inverse_transform(X)。 z分数会有类似的功能吗? 【参考方案1】:

没有内置方法可以从 df_z(z 分数)返回 df(原始值)。但是,您可以按如下方式轻松完成:

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

mean_std=
for var in df.columns:
    mean_std[var]=(df[var].mean(), df[var].std())

第 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)

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

【讨论】:

以上是关于反向 z 分数 pandas 数据框的主要内容,如果未能解决你的问题,请参考以下文章

Pandas - 计算所有列的 z 分数

python--pandas切片

Pandas dataframe threshold - 如果超过,则保持数字固定

我们如何在列的每个值中对 pandas 数据框进行二次采样

Pandas Groupby:计数和平均值相结合

如何在 Python Pandas 中扩展存储为单个值的可迭代对象? (又名反向分组)[重复]