如何使用groupby在pandas中以相反的顺序对列求和

吉他手045

我目前需要复制这个数据集,我必须在其中按主题 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何用pandas groupby对许多列求和?

pandas:使用groupby对列值的数量求和

如何使用zscan以相反的顺序遍历Redis中的排序集?

在对Pandas DataFrame的列中的不匹配值求和时,如何强制groupby / sum?

Pandas:groupby 对列的子集求和

如何使用PHP以相反的顺序显示日期?

如何使用JGit以相反的顺序获取日志?

如何使用Pandas groupby在组上添加顺序计数器列

如何使用 Pandas groupby 在组上添加顺序计数器列?

如何在laravel中使用groupBy查询求和列?

调用groupby和从pandas转换时如何保留列顺序?

如何删除2列中以相反顺序包含相同对的行

按某列分组以获得总值,并按某列相反的顺序求和

基于pandas groupby的多列求和

在Odoo 8 ORM api中,如何使用search()以相反的顺序获取结果?

创建列列表,并使用Pandas(Python)在新列中求和

使用Groupby的Python Pandas条件求和

groupby和求和两列并设置为pandas中的一列

在 groupby pandas 中对包含此列值的每个列值和其他列值求和

Scala 对groupby中多列的求和

groupby 多列,然后在 dplyr 中求和

使用groupby按条件求和熊猫列

如何以相反的顺序从多个元素中删除类?

如何“懒惰”地迭代OrderedDict中的键的相反顺序?

如何在Java中以相反的顺序迭代hashmap

如何在Google表格中以相反的顺序填写公式

如何在冒泡排序算法中获得相反的顺序

如何在Python中以相反的顺序获取字母范围?

如何在Scala中以相反的顺序迭代循环