title: Use of zip() throws "Shape of passed values is (x,y), indices imply (w,z)" on DataFrames with mixed types
body: <p><strong>* EDITED EDITED EDITED *</strong></p>
  
  <p>I am wrestling with this issue for quite some time and <strong>while the plain vanilla case works fine, I keep getting this error on a DataFrame with mixed types</strong>.</p>
  
  <p>My objective is to add two new, calculated columns.</p>
  
  <pre><code>import pandas as pd
  import datetime as dt
  
  df = pd.DataFrame({'one' : pd.Series([1, 2, 3, 4]),
                     'two' : pd.Series([20, 30, 40, 50]),
                     'zree': pd.Series([dt.datetime(2016, 7, x) for x in range(1, 5)])})
  
  df['sum'], df['prod'] = zip(*df.apply(lambda row: (row.one + row.two,
                                                     row.one * row.two), axis=1))
  
  
  ...
  ValueError: Shape of passed values is (4, 2), indices imply (4, 3)
  </code></pre>
  
  <p>The <strong>error disappears when I remove column 'zree' containing datetime or change type to int</strong>.</p>
  
  <p>Is there any workaround?</p>
  
  <p>Any help will be greatly appreciated.</p>
  
  <pre><code>import sys
  print(sys.version)
  3.5.1 |Anaconda 4.0.0 (64-bit)| (default, Feb 16 2016, 09:49:46) [MSC v.1900 64 bit (AMD64)]
  
  pd.__version__
  '0.18.1'
  </code></pre>