Suma de todas las filas con pandas excepto uno.

Tengo varias tablas en una base de datos PostgreSQL que se parecen más o menos así:

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 

Para cada tabla, los nombres de los números y las columnas cambian (los creé en un bucle en python).

Me gustaría tener otra columna llamada sum para cada tabla con la sum de cada calumn excepto el gid. El objective es tener algo así:

 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 

No puedo usar el nombre de columna: el único sin cambios es gid .

¿Alguna idea de hacerlo con python ( pandas , numpy ) o psql ?

Usa 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 

Si gid siempre es la primera columna, seleccione por iloc todas las columnas sin la primera y luego 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