Home > front end >  Get the sum of absolutes of columns for a dataframe
Get the sum of absolutes of columns for a dataframe

Time:10-26

If I have a dataframe and I want to sum the values of the columns I could do something like

import pandas as pd
studentdetails = {
       "studentname":["Ram","Sam","Scott","Ann","John","Bobo"],
       "mathantics" :[80,90,85,70,95,100],
       "science" :[85,95,80,90,75,100],
       "english" :[90,85,80,70,95,100]
              }
index_labels=['r1','r2','r3','r4','r5','r6']
df = pd.DataFrame(studentdetails ,index=index_labels)
print(df)
df3 = df.sum()
print(df3)

col_list= ['studentname', 'mathantics', 'science']
print( df[col_list].sum())

How can I do something similar but instead of getting only the sum, getting the sum of absolute values (which in this particular case would be the same though) of some columns? I tried abs in several way but it did not work

Edit:

   studentname  mathantics  science  english
r1         Ram          80       85       90
r2         Sam          90       95      -85
r3       Scott         -85       80       80
r4         Ann          70       90       70
r5        John          95      -75       95
r6        Bobo         100      100      100

Expected output

mathantics                        520
science                           525
english                           520

Edit2: The col_list cannot include string value columns

CodePudding user response:

You need numeric columns for absolute values:

col_list = df.columns.difference(['studentname'])
df[col_list].abs().sum()

df.set_index('studentname').abs().sum()
df.select_dtypes(np.number).abs().sum()
  • Related