title: Is there a function which creates a secondary dataframe of types for each entry in a dataframe?
body: <p>I am currently working with a large dataset (over 1 million rows, 1000 columns) where the data is unclean - almost every column contains either some missing values or some free-text replacements where numerical entries should be found. Calling pd.DataFrame.dtypes therefore results in every column being 'obj' type, when in reality they should be a mixture of string fields and float fields. I am looking for a way of creating a secondary dataframe showing the data type for each individual entry. Consider for example the following dataframe:</p>
  
  <pre><code>       A  B
      1  ab 1.0
      2  2  cd
  </code></pre>
  
  <p>I would like to produce something along the lines of</p>
  
  <pre><code>       A   B
      1  str float
      2  int str
  </code></pre>
  
  <p>or the corresponding pandas dtypes. Due to the size of the dataset I would like to avoid multiple for loops and am looking primarily for inbuilt/vectorised solutions.</p>
  
  <p>Thanks!</p>