title: Apply function row wise on pandas data frame on columns with numerical values
body: <p>I have the following data frame:</p>
  
  <pre><code>import pandas as pd
  df = pd.DataFrame({'AAA' : ['w','x','y','z'], 'BBB' : [10,20,30,40],'CCC' : [100,50,-30,-50]})
  </code></pre>
  
  <p>Which looks like this:</p>
  
  <pre><code>In [32]: df
  Out[32]:
    AAA  BBB  CCC
  0   w   10  100
  1   x   20   50
  2   y   30  -30
  3   z   40  -50
  </code></pre>
  
  <p>What I want to do is to perform function operation on every row for every column except those with non-numerical value (in this case <code>AAA</code>). In the real case the non-numerical case is always on first column, and the rest (could be greater than 2 columns) are always numerical. </p>
  
  <p>The final desired output is:</p>
  
  <pre><code>  AAA  BBB  CCC  Score
  0   w   10  100  110
  1   x   20   50   70
  2   y   30  -30    0
  3   z   40  -50  -10
  </code></pre>
  
  <p>I tried this but failed:</p>
  
  <pre><code>import numpy as np
  df["Score"] = df.apply(np.sum, axis=1)
  </code></pre>
  
  <p>What's the right way to do it?</p>
  
  <p><strong>Update2:</strong></p>
  
  <p>This is the code that give <code>SettingWithCopyWarning</code>.
  Please fresh start the ipython for testing.</p>
  
  <pre><code>import pandas as pd
  import numpy as np 
  def cvscore(fclist):
      sd = np.std(fclist)
      mean = np.mean(fclist)
      cv = sd/mean
      return cv
  
  def calc_cvscore_on_df(df):
      df["CV"] = df.iloc[:,1:].apply(cvscore, axis=1)
      return df
  
  df3 = pd.DataFrame(np.random.randn(1000, 3), columns=['a', 'b', 'c'])
  calc_cvscore_on_df(df3[["a","b"]])
  </code></pre>