gpt4 book ai didi

python - Pandas dataframe - 集群内的运行总和

转载 作者:行者123 更新时间:2023-12-01 04:59:00 26 4
gpt4 key购买 nike

我有

    x  cluster_id
0 1 1
1 3 1
2 2 2
3 5 2
4 4 3

我要生成

    x  cluster_id   s
0 1 1 1
1 3 1 4
2 2 2 3
3 5 2 7
4 4 3 4

sx 的运行总和,但当集群 ID 更改时它会重置。这是如何实现的?

或者,如果更容易,也可以这样做

    x  cluster_id   s
0 1 1 4
1 3 1 4
2 2 2 7
3 5 2 7
4 4 3 4

即同一簇内的所有 s 值都是相同的,并且对应于簇中的总和。

此外,我想对其进行二次采样,以便保留每个簇的最后一行:

    x  cluster_id   s
1 3 1 4
3 5 2 7
4 4 3 4

(请注意,所有集群 ID 均不同)。我怎样才能做到这一点?

最佳答案

您可以使用 .cumsum().groupby() 获取运行总计

>>> df
x cluster_id
0 1 1
1 3 1
2 2 2
3 5 2
4 4 3
>>> df['s'] = df.groupby('cluster_id').cumsum()
>>> df
x cluster_id s
0 1 1 1
1 3 1 4
2 2 2 2
3 5 2 7
4 4 3 4

然后只获取每个cluster_id的最后一行:

>>> df.groupby('cluster_id').last().reset_index()
cluster_id x s
0 1 3 4
1 2 5 7
2 3 4 4

关于python - Pandas dataframe - 集群内的运行总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26741901/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com