我目前需要复制这个数据集,我必须在其中按主题 ID 副本分组,并计算将来有多少得分为 1。我基本上必须反向计算它们,但是我不确定如何同时执行此操作和 groupby 主题 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()
这给了我值,但按降序求和,我需要我的从下到上。
我们可以loc
在使用之前使用反转groupby transform
。然后我们可以使用shift
并且cumsum
只考虑“未来”值:
data['Sum'] = (
data.loc[::-1] # Reverse DataFrame
.groupby(['SubjectID copy'])['Score'] # Groups
.transform(lambda s: s.shift(fill_value=0).cumsum()) # handle transformation
)
data
:
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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句