如何在Python中计算每个组的z得分?

时间:2018-11-21 20:50:58

标签: python-3.x group-by

我希望使用python根据每个属性组计算自变量“价格”的z得分。

换句话说,我需要计算“类型”中“公寓”组的z变换,“类型”中“房屋”组的z分数和“ NoInfo”组的z分数。 “使用所有组的z得分值在所有属性组的自变量“ price”中更改价格类型。请注意,我不希望将所有组的z得分值放在单独的列中。将所有组的所有z得分值都放在同一列“价格”中。

例如,如果我有一个如下所示的数据框,该如何为每个属性组(单元,NoInfo和NoInfo)计算z变换?

df =

     Name         Type               price 

0    gg         apartment            8 

1    hh         apartment            4

2    tty        apartment            0

3    ttyt       NoInfo               6

4    re         house                6 

5    ew         house                2

6    rr         house                0

7    tr         NoInfo               5

8    mm         NoInfo               0

我在下面编写了代码,但是我收到了一个错误消息:“长度不匹配:预期轴有4906个元素,新值有4910个元素“您知道如何解决此错误:

name = ['price']

price_zscore = lambda x: (x - x.mean()) / x.std()

df[name] = df.groupby([df.Type])[name].transform(price_zscore)

非常感谢

0 个答案:

没有答案