title: Pandas read_csv function possible to auto detect dtype?
body: <p>I have a large CSV file with over 200+ columns. Some of the columns are string, some varchar, some integers and some floats. </p>
  
  <p>When i just read my csv file into a pandas dataframe, it is able to detect which are the numerical columns. However, it will give me the <code>specify dtype or low memory error</code> warning.</p>
  
  <pre><code>df = pd.read_csv('myfile.csv')
  df_not_num = df_raw.select_dtypes(exclude =[np.number,np.int16,np.bool,np.float32])
  print len(df)
  &gt;&gt;&gt;200
  print len(list(df_not_num))
  &gt;&gt;&gt; 10
  </code></pre>
  
  <p>Then i try to specify a dtype: <code>dtype='unicode'</code>
  But this causes all my columns to be objects. 
  It is too much manual work to speicfy each dtype per column name when reading the CSV into a dataframe. </p>
  
  <pre><code>pd.read_csv('myfile.csv', dtype = 'unicode')
  df_not_num = df_raw.select_dtypes(exclude =[np.number,np.int16,np.bool,np.float32])
  print len(df)
  &gt;&gt;&gt;&gt;200
  print len(list(df_not_num))
  &gt;&gt;&gt; 200
  </code></pre>
  
  <p>So the only way to avoid the low memory warning is to specify a <code>dtype</code>. But how do i specify that i have mixed dtypes for different columns without having to manually specify the dtype of each of the 200 columns?</p>