gpt4 book ai didi

python - 取 Pandas 系列中每 N 行的总和

转载 作者:太空狗 更新时间:2023-10-29 20:41:28 29 4
gpt4 key购买 nike

假设

s = pd.Series(range(50))

0      0
1 1
2 2
3 3
...
48 48
49 49

我怎样才能得到由每n行总和组成的新系列?

当 n = 5 时,预期结果如下所示;

0      10
1 35
2 60
3 85
...
8 210
9 235

如果用loc或者iloc,用python循环,当然可以实现,但是我相信用Pandas的方式也可以简单的实现。

此外,这是一个非常简化的示例,我不期望对序列的解释:)。我正在尝试的实际数据系列具有时间索引和每秒发生的事件数作为值。

最佳答案

GroupBy.sum

N = 5
s.groupby(s.index // N).sum()

0 10
1 35
2 60
3 85
4 110
5 135
6 160
7 185
8 210
9 235
dtype: int64

将索引分成 5 组并相应地分组。


numpy.reshape + 总和

如果大小是N(或5)的倍数,可以reshape并添加:

s.values.reshape(-1, N).sum(1)
# array([ 10, 35, 60, 85, 110, 135, 160, 185, 210, 235])

numpy.add.at

b = np.zeros(len(s) // N)
np.add.at(b, s.index // N, s.values)
b
# array([ 10., 35., 60., 85., 110., 135., 160., 185., 210., 235.])

关于python - 取 Pandas 系列中每 N 行的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47239332/

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