假设我有一个像这样的数据框:
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)
我如何在熊猫中做到这一点?
让我们试试 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)
我们可以试试numpy的reshape和sum:
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)
| 归档时间: |
|
| 查看次数: |
81 次 |
| 最近记录: |