我可以按变量分组并应用变换吗?

时间:2017-08-30 03:47:11

标签: pandas

以下是我正在使用的一些示例数据

Group   Measure
B   10.59
C   7.94
B   8.67
C   10.4
B   10.1
C   10.11
A   9.08
B   10.24
C   9.67
B   10.49

我想根据群组的条目找到度量的Z分数。这相当于按组中的每个条目进行分组并获取数据的z分数。

Naive尝试

df.groupby('Group').apply(lambda x: zscore(x.Measure))会在每个数据框单元格中生成一个数组。

无论如何,我可以根据分组将变换应用于列吗?

1 个答案:

答案 0 :(得分:2)

你可以尝试

from scipy import stats
import pandas as pd 
df.groupby('Group').transform(lambda x: stats.zscore(x))

    Measure
0  0.821669
1 -1.666544
2 -1.936382
3  0.911883
4  0.117792
5  0.607922
6       NaN # single value do not have std so the result will be NaN
7  0.318900
8  0.146740
9  0.678021