以下是我正在使用的一些示例数据
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))
会在每个数据框单元格中生成一个数组。
无论如何,我可以根据分组将变换应用于列吗?
答案 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