将DataFrame中的n行交替求和

时间:2019-03-21 03:56:59

标签: pandas dataframe sum rows

我在尝试解决以下问题时遇到了麻烦。我想添加每n列以保持列数。详细信息:

df = pd.DataFrame(np.arange(32).reshape((8, 4)))

        0   1   2   3
    0   0   1   2   3
    1   4   5   6   7
    2   8   9  10  11
    3  12  13  14  15
    4  16  17  18  19
    5  20  21  22  23
    6  24  25  26  27
    7  28  29  30  31

每两行相加时,即索引(0、2、4、6)和(1、3、5、7)。结果应该是:

    0   1   2
0  48  52  56
1  64  68  72

当然,这是一个简单的DataFrame,但是我必须在50000x5000矩阵中添加每1000行。在这种情况下,我将添加行(0、1000、2000,...),(1、1001、2001,...)等。结果应为50x5000 DataFrame。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您需要的是groupby index% 2

df.groupby(df.index%2).sum()# you may change the df.index to np.arange(len(df))
    0   1   2   3
0  48  52  56  60
1  64  68  72  76