["python","pandas","dataframe","sum"]
Get total of Pandas column

I have a Pandas data frame, as shown below, with multiple columns and would like to get the total of column, MyColumn. X MyColumn Y Z 0 A 84 13.0 69.0 1 B 76 77.0 127.0 2 C 28 69.0 16.0 3 D 28 28.0 31.0 4 E 19 20.0 85.0 5 F 84 193.0 70.0 Expected Output I'd have expected the output to be the total of this column: 319. Or alternatively, I would like df to be edited with a new row entitled TOTAL containing the total: X MyColumn Y Z 0 A 84 13.0 69.0 1 B 76 77.0 127.0 2 C 28 69.0 16.0 3 D 28 28.0 31.0 4 E 19 20.0 85.0 5 F 84 193.0 70.0 TOTAL 319 I have attempted to get the sum of the column using groupby and .sum(): Total = df.groupby['MyColumn'].sum() This causes the following error: TypeError: 'instancemethod' object has no attribute '__getitem__'
You should use sum: Total = df['MyColumn'].sum() print(Total) 319 Then you use loc with Series, in that case the index should be set as the same as the specific column you need to sum: df.loc['Total'] = pd.Series(df['MyColumn'].sum(), index=['MyColumn']) print(df) X MyColumn Y Z 0 A 84.0 13.0 69.0 1 B 76.0 77.0 127.0 2 C 28.0 69.0 16.0 3 D 28.0 28.0 31.0 4 E 19.0 20.0 85.0 5 F 84.0 193.0 70.0 Total NaN 319.0 NaN NaN because if you pass scalar, the values of all rows will be filled: df.loc['Total'] = df['MyColumn'].sum() print(df) X MyColumn Y Z 0 A 84 13.0 69.0 1 B 76 77.0 127.0 2 C 28 69.0 16.0 3 D 28 28.0 31.0 4 E 19 20.0 85.0 5 F 84 193.0 70.0 Total 319 319 319.0 319.0 Two other solutions are with at, and ix see the applications below: df.at['Total', 'MyColumn'] = df['MyColumn'].sum() print(df) X MyColumn Y Z 0 A 84.0 13.0 69.0 1 B 76.0 77.0 127.0 2 C 28.0 69.0 16.0 3 D 28.0 28.0 31.0 4 E 19.0 20.0 85.0 5 F 84.0 193.0 70.0 Total NaN 319.0 NaN NaN df.ix['Total', 'MyColumn'] = df['MyColumn'].sum() print(df) X MyColumn Y Z 0 A 84.0 13.0 69.0 1 B 76.0 77.0 127.0 2 C 28.0 69.0 16.0 3 D 28.0 28.0 31.0 4 E 19.0 20.0 85.0 5 F 84.0 193.0 70.0 Total NaN 319.0 NaN NaN Note: Since Pandas v0.20, ix has been deprecated. Use loc or iloc instead.