title: Creating a new column name based on a loop variable and an additional string
body: <p>I want to create percentage change column for each column that is a float in my dataframe and stored it in a newn column each time with the name of the initial column and the add on "_change"     </p>
  
  <p>I tried this but it does not seem to work any idea?</p>
  
  <pre><code>for col in df.columns:
          if df[col].dtypes == "float":
             df[ col&amp;'_change'] = (df.col - df.groupby(['New_ID']).col.shift(1))/ df.col
  </code></pre>
  
  <p>for example if my column is df["Expenses"] I would like to save the percentage change in df["Expenses_change"]
  Edited for adding example data frame and output</p>
  
  <p>df initially</p>
  
  <pre><code>Index   ID  Reporting_Date  Sales_Am    Exp_Am
       0   1   01/01/2016        1000      900
       1   1   02/01/2016        1050      950
       2   1   03/01/2016        1060      960
       3   2   01/01/2016        2000      1850
       4   2   02/01/2016        2500      2350
       4   2   03/01/2016        3000      2850
  </code></pre>
  
  <p>after the loop</p>
  
  <pre><code>Index   ID  Reporting_Date  Sales_Am  Sales_Am_chge  Exp_Am  Exp_Am_chge
  0        1  01/01/2016         1000     Null          900      Null
  1        1  02/01/2016         1050     5%            950      6%
  2        1  03/01/2016         1060     1%            960      1%
  3        2  01/01/2016         2000     Null          1850     Null
  4        2  02/01/2016         2500     25%           2350     27%
  4        2  03/01/2016         3000     20%           2850     21%
  </code></pre>
  
  <p>keep in mind that i have more than 2 columns on my dataframe.</p>