在 Pandas 中按索引分组

2024-05-07

如何使用 groupby by 索引 (1,2,3)(它们的顺序相同)并获得属于每个索引范围的列分数的总和?基本上我有这个:

    index  score
    1      2
    2      2
    3      2
    1      3
    2      3
    3      3

我想要的是:

    index  score  sum
    1      2      6
    2      2      9
    3      2
    1      3
    2      3
    3      3

我明白它必须是这样的:

    df = df.groupby(['Year'])['Score'].sum()

但不是用“年”,而是以某种方式通过索引来完成它?


根据评论,您可以groupby索引并返回cumcount()在一个新对象中s。然后,您可以对这个新对象进行分组s并得到sum()。我假设index在你的index在您的示例中,而不是名为的列index。如果它是一个名为index,然后首先做df = df.set_index('index'):

s = df.groupby(level=0).cumcount()
df.groupby(s)['score'].sum()

0    6
1    9
Name: score, dtype: int64

如果打印出来s, then s看起来像这样:

    index
1    0
2    0
3    0
1    1
2    1
3    1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Pandas 中按索引分组 的相关文章

随机推荐