我目前需要复制这个数据集,在这里我必须按主题复制groupby,并计算将来有多少人的得分为1。我必须倒数它们,但我不知道如何才能做到这一点,同时还有GroupBySubject id。
SubjectID copy Score Number of All Future Hosp for O column
0 phchp003 1 4
1 phchp003 1 3
2 phchp003 1 2
3 phchp003 1 1
4 phchp003 1 0
5 phchp004 1 4
6 phchp004 1 3
7 phchp004 1 2
8 phchp004 1 1
9 phchp004 1 0
10 phchp006 0 3
11 phchp006 0 3
12 phchp006 0 3
13 phchp006 0 3
14 phchp006 1 2
15 phchp006 1 1
16 phchp006 1 0
我现在有
data['Sum']= data.groupby(['SubjectID copy'])['Score'].cumsum()
这给了我这些值,但按降序求和,我需要我的值从下到上。
3条答案
按热度按时间wb1gzix01#
我们可以使用
loc
使用前倒转groupby transform
. 然后我们可以使用shift
及cumsum
只考虑“未来”价值:SubjectID copy Score Sum
0 phchp003 1 4
1 phchp003 1 3
2 phchp003 1 2
3 phchp003 1 1
4 phchp003 1 0
5 phchp004 1 4
6 phchp004 1 3
7 phchp004 1 2
8 phchp004 1 1
9 phchp004 1 0
10 phchp006 0 3
11 phchp006 0 3
12 phchp006 0 3
13 phchp006 0 3
14 phchp006 1 2
15 phchp006 1 1
16 phchp006 1 0
zkure5ic2#
要找到多少
1
让我们将来再来transform
团体sum
然后减去cumsum
.aij0ehis3#
首先对其进行排序: