我有一个数据框如下:
import pandas as pd
df = pd.DataFrame([(1,2,3,4,5,6),
(1,2,3,4,5,6),
(1,2,3,4,5,6)], columns=['a','b','c','d','e','f'])
Out:
a b c d e f
0 1 2 3 4 5 6
1 1 2 3 4 5 6
2 1 2 3 4 5 6
我想获得数据帧所有元素的总和,始终不包括一列。在此示例中,期望的结果是:
60 57 54 51 48 45
我找到了一个似乎可以完成这项工作的解决方案,但我很确定必须有一种更有效的方法来完成同样的任务:
for x in df.columns:
df.drop(columns = x).sum().sum()
最佳答案
使用DataFrame.rsub
要从右侧求和行中减去 df.sum(axis=1)
,最后添加 sum
作为每列的总和:
s = df.rsub(df.sum(axis=1), axis=0).sum()
print (s)
a 60
b 57
c 54
d 51
e 48
f 45
dtype: int64
关于python - 循环总和不包括 pandas 数据帧的一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70696296/