Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在熊猫中,如何一次对'n'行进行求和?_Python_Pandas_Pandas Groupby - Fatal编程技术网

Python 在熊猫中,如何一次对'n'行进行求和?

Python 在熊猫中,如何一次对'n'行进行求和?,python,pandas,pandas-groupby,Python,Pandas,Pandas Groupby,给定一个数据帧 A 0 14 1 59 2 38 3 40 4 99 5 89 6 70 7 64 8 84 9 40 10 30 11 94 12 65 13 29 14 48 15 26 16 80 17 79 18 74 19 69 此数据框有20列。我想一次将n=5行分组并汇总。因此,我的输出如下所示: A 0 250 1 347 2 266 3 328 df.rolling\u sum没有帮助

给定一个数据帧

     A
0   14
1   59
2   38
3   40
4   99
5   89
6   70
7   64
8   84
9   40
10  30
11  94
12  65
13  29
14  48
15  26
16  80
17  79
18  74
19  69
此数据框有20列。我想一次将
n=5行
分组并汇总。因此,我的输出如下所示:

     A
0  250
1  347
2  266
3  328 
df.rolling\u sum
没有帮助,因为它不允许您在求和时改变步幅


还有什么其他方法可以做到这一点?

假设索引是连续的,您可以对
df.index
执行整数除法,然后按索引分组

对于上面的
df
,您可以执行以下操作:

df.index // 5
# Int64Index([0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3], dtype='int64')
获得最终答案只需多做一步,使用和:


如果您没有
范围索引
,请先使用,然后使用组。

如果您可以使用和而不是序列来管理数据数组(您始终可以再次构造序列),则可以使用

df.set_index(df.index // 5).sum(level=0)
在这种情况下,它返回

array([250, 347, 266, 328])

哦,这是新的。我不知道等级。。。酷…在盲目否决之前,请阅读:问一个标记为重复的问题没有错。同意。而且,这不是完全相同的。它足够近,我不会撤消dup标志。但你的问题是关于金额。另一个问平均数。不同的人会想寻找不同的东西。如果你的问题的措辞最终能引导更多的人找到他们需要的答案,那么你提出了一个有用的问题,即使它是重复的。我还将我的答案添加到了问题@piRSquared,我投了更高的票!谢谢你的支持。@piRSquared我说这个问题肯定是重复的,因为这些问题实际上并不是问如何计算
总和
平均值
,而是一般来说如何对这些观察结果进行分组(聚合)。但我同意复制品是有用的。如果不是因为Divakar的回答,我甚至可能关闭另一个,作为这个的复制品,因为短语“一次n行”似乎更常见。无论如何,我不会对反对票做太多解读,因为这里的每个人都有自己的标准,不可能跟得上所有人。
np.add.reduceat(df.A.values, np.arange(0, df.A.size, 5))
array([250, 347, 266, 328])