汇总 DataFrame 行和列

jav*_*d b 5 python pandas

假设我有一个像这样的数据框:

     a   b  c  d  e  f
1.   1   5  5  9  2  3
2.   4   7  3  1  4  6
3.   2   3  8  9  2  1 
4.   7   3  1  4  7  11
5.   8   5  4  9  0  3
6.   7   8  4  7  2  1
Run Code Online (Sandbox Code Playgroud)

例如,我想总结行和列的 4 个元素的值。这会给我 1+5+4+7=17 和 5+9+3+1=18 , 2+3+4+6=15 ,...

输出

       a    b    c
   1.  17   18   15
   2.  18   22   21
   3.  28   27   6
Run Code Online (Sandbox Code Playgroud)

我如何在熊猫中做到这一点?

WeN*_*Ben 6

让我们试试 einsum

pd.DataFrame(np.einsum('ijkl->ik',df.values.reshape(3,2,3,2)))
Out[101]: 
    0   1   2
0  17  18  15
1  15  22  21
2  28  24   6
Run Code Online (Sandbox Code Playgroud)


Qua*_*ang 5

我们可以试试numpy的reshapesum

a = df.to_numpy()
a.reshape(df.shape[0]//2,2, df.shape[1]//2,2).sum((1,3))
Run Code Online (Sandbox Code Playgroud)

输出:

array([[17, 18, 15],
       [15, 22, 21],
       [28, 24,  6]])
Run Code Online (Sandbox Code Playgroud)