Me gustaría agregar todas las columnas en un DataFrame, y me gustaría agregar esta suma como una nueva columna en el DataFrame.

Quiero "todas" las columnas disponibles, sin mencionar la primera y la última columna en mi consulta.

¿Es posible?

4
vsoler 9 may. 2016 a las 22:25

3 respuestas

La mejor respuesta

Utilice sum:

import pandas as pd
import numpy as np

#random dataframe
np.random.seed(1)
df1 = pd.DataFrame(np.random.randint(10, size=(3,5)))
df1.columns = list('ABCDE')
print df1
   A  B  C  D  E
0  5  8  9  5  0
1  0  1  7  6  9
2  2  4  5  2  4

df1['sum'] = df1.sum(axis=1)
print df1
   A  B  C  D  E  sum
0  5  8  9  5  0   27
1  0  1  7  6  9   23
2  2  4  5  2  4   17

Otra solución para crear nuevas columnas es assign:

print df1.assign(sum=df1.sum(axis=1))
   A  B  C  D  E  sum
0  5  8  9  5  0   27
1  0  1  7  6  9   23
2  2  4  5  2  4   17
2
jezrael 9 may. 2016 a las 19:45

Solución

pd.concat([df, df.sum(axis=1)], axis=1)
1
piRSquared 9 may. 2016 a las 19:31

Puedes hacerlo así:

df['sum'] = df.sum(axis=1)
1
MaxU 9 may. 2016 a las 19:32