title: pandas read_csv column dtype is set to decimal but converts to string
body: <p>I am using pandas (v0.18.1) to import the following data from a file called 'test.csv':</p>
  
  <pre><code>a,b,c,d
  1,1,1,1.0
  </code></pre>
  
  <p>I have set the dtype to 'decimal.Decimal' for columns 'c' and 'd' but instead they return as type 'str'.</p>
  
  <pre><code>import pandas as pd
  import decimal as D
  
  df = pd.read_csv('test.csv', dtype={'a': int, 'b': float, 'c': D.Decimal, 'd': D.Decimal})
  
  for i, v in df.iterrows():
      print(type(v.a), type(v.b), type(v.c), type(v.d))
  </code></pre>
  
  <p>Results:</p>
  
  <pre><code>`&lt;class 'int'&gt; &lt;class 'float'&gt; &lt;class 'str'&gt; &lt;class 'str'&gt;`
  </code></pre>
  
  <p>I have also tried converting to decimal explicitly after import with no luck (converting to float works but not decimal).</p>
  
  <pre><code>df.c = df.c.astype(float)
  df.d = df.d.astype(D.Decimal)
  for i, v in df.iterrows():
      print(type(v.a), type(v.b), type(v.c), type(v.d))
  </code></pre>
  
  <p>Results:</p>
  
  <pre><code>`&lt;class 'int'&gt; &lt;class 'float'&gt; &lt;class 'float'&gt; &lt;class 'str'&gt;`
  </code></pre>
  
  <p>The following code converts a 'str' to 'decimal.Decimal' so I don't understand why pandas doesn't behave the same way. </p>
  
  <pre><code>x = D.Decimal('1.0')
  print(type(x))
  </code></pre>
  
  <p>Results:</p>
  
  <pre><code>`&lt;class 'decimal.Decimal'&gt;`
  </code></pre>