除了一个外,所有行都与熊猫相加

时间:2017-05-16 13:49:39

标签: python postgresql pandas numpy

我在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之外,每个表的总和。目标是拥有类似的东西:

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

我无法使用列名:唯一没有更改的是[{1}}。

有些想法可以使用gidpythonpandas)或numpy吗?

1 个答案:

答案 0 :(得分:19)

使用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