title: Pandas: Create a tuple column from multiple columns
body: <p>I have the following data frame <code>my_df</code>:</p>
  
  <pre><code>Person       event         time
  ---------------------------------
  John          A        2017-10-11
  John          B        2017-10-12
  John          C        2017-10-14
  John          D        2017-10-15
  Ann           X        2017-09-01
  Ann           Y        2017-09-02
  Dave          M        2017-10-05
  Dave          N        2017-10-07
  Dave          Q        2017-10-20
  </code></pre>
  
  <p>I want to create a new column, which is the (event, time) pair. It should look like:</p>
  
  <pre><code>Person       event         time        event_time
  ------------------------------------------------------
  John          A        2017-10-11     (A, 2017-10-11)
  John          B        2017-10-12     (B, 2017-10-12)
  John          C        2017-10-14     (C, 2017-10-14)
  John          D        2017-10-15     (D, 2017-10-15)
  Ann           X        2017-09-01     (X, 2017-09-01)
  Ann           Y        2017-09-02     (Y, 2017-09-02)
  Dave          M        2017-10-05     (M, 2017-10-05)
  Dave          N        2017-10-07     (N, 2017-10-07)
  Dave          Q        2017-10-20     (Q, 2017-10-20)
  </code></pre>
  
  <p>Here is my code:</p>
  
  <pre><code>my_df['event_time'] = my_df.apply(lambda row: (row['event'] , row['time']), axis=1)
  </code></pre>
  
  <p>But I got the following error:</p>
  
  <pre><code>---------------------------------------------------------------------------
  ValueError                                Traceback (most recent call last)
  /usr/local/lib/python3.4/dist-packages/pandas/core/internals.py in create_block_manager_from_arrays(arrays, names, axes)
     4309         blocks = form_blocks(arrays, names, axes)
  -&gt; 4310         mgr = BlockManager(blocks, axes)
     4311         mgr._consolidate_inplace()
  
  /usr/local/lib/python3.4/dist-packages/pandas/core/internals.py in __init__(self, blocks, axes, do_integrity_check, fastpath)
     2794         if do_integrity_check:
  -&gt; 2795             self._verify_integrity()
     2796 
  
  /usr/local/lib/python3.4/dist-packages/pandas/core/internals.py in _verify_integrity(self)
     3005             if block._verify_integrity and block.shape[1:] != mgr_shape[1:]:
  -&gt; 3006                 construction_error(tot_items, block.shape[1:], self.axes)
     3007         if len(self.items) != tot_items:
  
  /usr/local/lib/python3.4/dist-packages/pandas/core/internals.py in construction_error(tot_items, block_shape, axes, e)
     4279     raise ValueError("Shape of passed values is {0}, indices imply {1}".format(
  -&gt; 4280         passed, implied))
     4281 
  
  ValueError: Shape of passed values is (128, 2), indices imply (128, 3)
  </code></pre>
  
  <p>Any idea what I did wrong in my code? Thanks!</p>