我有一个数据框,长这个样子:
pd.DataFrame([[1, 10, 14], [1, 12, 14], [1, 20, 12], [1, 25, 12], [2, 18, 12], [2, 30, 14], [2, 4, 12], [2, 10, 14]], columns = ['A', 'B', 'C'])
A B C
0 1 10 14
1 1 12 14
2 1 20 12
3 1 25 12
4 2 18 12
5 2 30 14
6 2 4 12
7 2 10 14
我的目标是获取相对于列A和C的组的z分数。我知道可以计算每个组的平均值和标准偏差。
test.groupby(['A', 'C']).mean()
B
A C
1 12 22.5
14 11.0
2 12 11.0
14 20.0
test.groupby(['A', 'C']).std()
B
A C
1 12 3.535534
14 1.414214
2 12 9.899495
14 14.142136
现在,针对B列中的每个项目,我想基于这些均值和标准偏差计算它们的Z分数。因此,第一个结果将是(10 - 11) / 1.41。我觉得应该有一种不太复杂的方法可以做到这一点,但我卡在了如何继续上。如果有人能指点我正确的方向或者需要我澄清什么东西,请告诉我!