除一只外,所有的熊猫行总和

发布于 2021-01-29 16:22:09

我在PostgreSQL数据库上有几个表,这些表或多或少像这样:

gid      col2       col1        col3
6        15         45          77
1        15         45          57
2        14         0.2         42
3        12         6           37
4        9          85          27
5        5          1           15

对于每个表,数字和列的名称都会发生变化(我在python的循环中创建了它们)。

我想为每个表返回另一列称为sum的列,其中包含除gid之外的每个calumn的总和。我们的目标是:

gid     col2       col1        col3     sum 
6        15         45          77      137
1        15         45          57      117
2        14         0.2         42      56.2
3        12         6           37      55
4        9          85          27      121 
5        5          1           15      21

我不能使用列名:唯一没有更改的列是gid

pythonpandasnumpy)或psql

关注者
0
被浏览
45
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    使用drop+
    sum

    df['sum'] = df.drop('gid', axis=1).sum(axis=1)
    print (df)
       gid  col2  col1  col3    sum
    0    6    15  45.0    77  137.0
    1    1    15  45.0    57  117.0
    2    2    14   0.2    42   56.2
    3    3    12   6.0    37   55.0
    4    4     9  85.0    27  121.0
    5    5     5   1.0    15   21.0
    

    如果gid始终是第一列,则按iloc所有列进行选择,而不选择第一列,然后选择sum它们:

    df['sum'] = df.iloc[:, 1:].sum(axis=1)
    print (df)
       gid  col2  col1  col3    sum
    0    6    15  45.0    77  137.0
    1    1    15  45.0    57  117.0
    2    2    14   0.2    42   56.2
    3    3    12   6.0    37   55.0
    4    4     9  85.0    27  121.0
    5    5     5   1.0    15   21.0
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看