title: Pandas read_csv dtype read all columns but few as string
body: <p>I'm using Pandas to read a bunch of CSVs. Passing an options json to dtype parameter to tell pandas which columns to read as string instead of the default:</p>
  
  <pre><code>dtype_dic= { 'service_id':str, 'end_date':str, ... }
  feedArray = pd.read_csv(feedfile , dtype = dtype_dic)
  </code></pre>
  
  <p>In my scenario, <strong><em>all</em></strong> the columns except a few specific ones are to be read as strings. So instead of defining several columns as str in <code>dtype_dic</code>, I'd like to set just my chosen few as int or float. Is there a way to do that?</p>
  
  <p>It's a loop cycling through various CSVs with differing columns, so a direct column conversion after having read the whole csv as string (<code>dtype=str</code>), would not be easy as I would not immediately know which columns that csv is having. (I'd rather spend that effort in defining all the columns in the dtype json!) </p>
  
  <p>Edit: But if there's a way to process the list of column names to be converted to number without erroring out if that column isn't present in that csv, then yes that'll be a valid solution, if there's no other way to do this at csv reading stage itself.</p>
  
  <p>Note: this sounds <a href="https://stackoverflow.com/questions/37515896/pandas-read-csv-dtype-specify-all-columns-but-one">like a previously asked question</a> but the answers there went down a very different path (bool related) which doesn't apply to this question. Pls don't mark as duplicate!</p>