Aizzaac
Aizzaac

Reputation: 3318

How to sum columns in pandas and add the result into a new row?

In this code I want to sum each column and add it as a new row. It does the sum but it does not show the new row.

df = pd.DataFrame(g, columns=('AWA', 'REM', 'S1', 'S2'))
df['xSujeto'] = df.sum(axis=1)
xEstado = df.sum(axis=0)
df.append(xEstado, ignore_index=True)
df

enter image description here

Upvotes: 1

Views: 2262

Answers (1)

jezrael
jezrael

Reputation: 863791

I think you can use loc:

df = pd.DataFrame({'AWA':[1,2,3],
                   'REM':[4,5,6],
                   'S1':[7,8,9],
                   'S2':[1,3,5]})

#add 1 to last index value 
print (df.index[-1] + 1)
3  

df.loc[df.index[-1] + 1] = df.sum()
print (df)
   AWA  REM  S1  S2
0    1    4   7   1
1    2    5   8   3
2    3    6   9   5
3    6   15  24   9

Or append from comment of Nickil Maveli:

xEstado = df.sum()
df = df.append(xEstado, ignore_index=True)
print (df)
   AWA  REM  S1  S2
0    1    4   7   1
1    2    5   8   3
2    3    6   9   5
3    6   15  24   9

Upvotes: 5

Related Questions