Pandas: sum up multiple columns into one column without last column Pandas: sum up multiple columns into one column without last column python python

Pandas: sum up multiple columns into one column without last column


You can first select by iloc and then sum:

df['Fruit Total']= df.iloc[:, -4:-1].sum(axis=1)print (df)   Apples  Bananas  Grapes  Kiwis  Fruit Total0     2.0      3.0     NaN    1.0          5.01     1.0      3.0     7.0    NaN         11.02     NaN      NaN     2.0    3.0          2.0

For sum all columns use:

df['Fruit Total']= df.sum(axis=1)


It is possible to do it without knowing the number of columns and even without iloc:

print(df)   Apples  Bananas  Grapes  Kiwis0     2.0      3.0     NaN    1.01     1.0      3.0     7.0    NaN2     NaN      NaN     2.0    3.0cols_to_sum = df.columns[ : df.shape[1]-1]df['Fruit Total'] = df[cols_to_sum].sum(axis=1)print(df)   Apples   Bananas Grapes  Kiwis   Fruit Total0  2.0      3.0     NaN     1.0     5.01  1.0      3.0     7.0     NaN     11.02  NaN      NaN     2.0     3.0     2.0


Using df['Fruit Total']= df.iloc[:, -4:-1].sum(axis=1) over your original df won't add the last column ('Kiwis'), you should use df.iloc[:, -4:] instead to select all columns:

print(df)   Apples  Bananas  Grapes  Kiwis0     2.0      3.0     NaN    1.01     1.0      3.0     7.0    NaN2     NaN      NaN     2.0    3.0df['Fruit Total']=df.iloc[:,-4:].sum(axis=1)print(df)   Apples  Bananas  Grapes  Kiwis  Fruit Total0     2.0      3.0     NaN    1.0          6.01     1.0      3.0     7.0    NaN         11.02     NaN      NaN     2.0    3.0          5.0