title: Apply Formatting to Each Column in Dataframe Using a Dict Mapping
body: <p><strong>Problem Setup</strong></p>
  
  <pre><code>import pandas as pd
  df = pd.DataFrame(data={'Currency': {0: 111.23, 1: 321.23},
                     'Int': {0: 23, 1: 3},
                     'Rate': {0: 0.03030, 1: 0.09840}}
              )
  </code></pre>
  
  <p>Produces the following DataFrame</p>
  
  <pre><code>   Currency  Int    Rate
  0    111.23   23  0.0303
  1    321.23    3  0.0984
  </code></pre>
  
  <p>I want to apply very specific formatting to each column in the dataframe using a dict like the following:</p>
  
  <pre><code>format_mapping={'Currency': '${:,.2f}', 'Int': '{:,.0f}', 'Rate': '{:.2f}%'}
  </code></pre>
  
  <p>I know I can use applymap for multiple columns or apply on a single column:</p>
  
  <pre><code>#All columns
  df = df.applymap('{:.2f}%'.format)
  #Specific columns
  df['Rate'] = df['Rate'].apply('{:.2f}%'.format)
  </code></pre>
  
  <p><strong>Question</strong></p>
  
  <p>How can I iterate through each column in a dataframe and apply formatting using a dictionary where the <code>dict</code> <code>key</code> is the <code>column</code> and the <code>value</code> is the <code>string</code> formatting?</p>
  
  <p>End result would look like this (ignore the fact that percent wasn't multiplied by 100 for now)</p>
  
  <pre><code>  Currency Int   Rate
  0  $111.23  23  0.03%
  1  $321.23   3  0.10%
  </code></pre>