python - 循环总和不包括 pandas 数据帧的一列

标签 python pandas

我有一个数据框如下:

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/

相关文章:

python:在两个数组之间交换元素的算法

python - 如何正确读取带有日期的 csv 并省略 pandas 中的前导零?

python - 使用 enumerate 循环多个列表

python - 在 cmd 中提供来自文件的 stdin 输入?

python - 如何使用 Tensorflow 获取张量中最大值的索引?

python - 使用回溯计算屏幕锁定模式的问题

python - Pandas DataFrame 选择具有 NaN 值的特定列

python - Pandas 在过滤时将 int 提升为 float

Python散点图根据值绘制不同的颜色

python - 如何使用 pandas 创建新的 df 列以使用正则表达式获取列名称和值?