我需要一些关于标准化条件的帮助,如何标准化一列数据
Score Rating Result
1 20 1200 -1.264911064
2 30 1300 -1.264911064
3 40 1200 -0.632455532
4 50 1300 -0.632455532
5 60 1200 0
6 70 1300 0
7 80 1200 0.632455532
8 90 1300 0.632455532
9 100 1200 1.264911064
10 110 1300 1.264911064
我正在尝试标准化所有具有相同评级的scoers,即标准化所有评分为1200和1300的评分。 scikit-learn。 preprocessing.scalar似乎不支持这个功能。
答案 0 :(得分:2)
Groupby Rating
,然后对于每个子组,您可以使用transform来计算标准化的Z得分:
df['Result'] = df.groupby('Rating').transform(lambda x: (x-x.mean()) / x.std())
这将为您提供所需的输出:
Score Rating Result
0 20 1200 -1.264911
1 30 1300 -1.264911
2 40 1200 -0.632456
3 50 1300 -0.632456
4 60 1200 0.000000
5 70 1300 0.000000
6 80 1200 0.632456
7 90 1300 0.632456
8 100 1200 1.264911
9 110 1300 1.264911