Glo*_* P. 5 python postgresql numpy pandas
我在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
Run Code Online (Sandbox Code Playgroud)
对于每个表,数字和列的名称都会更改(我在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
Run Code Online (Sandbox Code Playgroud)
我不能使用列名:唯一没有更改的是gid.
有些想法用python(pandas,numpy)或psql?
jez*_*ael 19
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
Run Code Online (Sandbox Code Playgroud)
如果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
Run Code Online (Sandbox Code Playgroud)