【发布时间】:2020-12-22 13:23:00
【问题描述】:
我有一个如下所示的玩具数据集。
Building Department feature1 feature2
0 A 1 14 28
1 A 1 11 26
2 A 1 29 19
3 A 2 26 28
4 A 2 22 27
5 A 2 20 24
6 A 2 15 14
7 A 2 30 21
8 A 3 30 15
9 A 3 16 29
10 A 3 25 23
11 A 3 26 15
12 A 3 11 11
我要计算这些变量:
- 对于每个建筑物和部门,
Score1是该部门的feature1和feature2的平均值(展平并做平均,没有花哨的东西) - 对于每个建筑物和部门,
Score2是feature1的平均值,feature2是不包括该部门(即焦点组)的平均值。
因此,对于 Department1,Score1 将根据 Department 1 的平均值计算,但 Score2 将根据 Department 2 和 3 计算。
最终结果:
Building Department Score1 Score2
0 A 1 21.16 21.400
1 A 2 22.70 20.500
2 A 3 20.10 22.125
对于这种“排除”,我找不到任何pandas 快捷方式。一种可能的解决方案是遍历组并像这样计算它,但是我的数据对于这样的循环来说太大了。
任何帮助,提示表示赞赏!谢谢
【问题讨论】:
-
对于 score2 其他建筑物重要吗?
-
分数 2 也是按建筑计算的。因此,不考虑其他建筑物,只考虑焦点建筑物
标签: python pandas dataframe pandas-groupby