title: Splitting columns more efficiently
body: <p>I have a dataframe with a column <code>x</code> containg strings composed of numbers a letters like this</p>
  
  <pre><code>x
  1 a
  2 b
  3 a
  34 c
  35 d
  </code></pre>
  
  <p>I want to split this column into two <code>y</code> and <code>z</code>, one with the numeric value and another with the string so I do</p>
  
  <pre><code>df['y']=df['x'].str.strip().str.split(' ').str.get(0)          
  df['z']=df['x'].str.split(' ').str.get(1)
  </code></pre>
  
  <p>It's there a more efficient way to do it? When applying this operation in huge files it takes several minutes.</p>
  
  <p>Update: The string and the number are optional and not always appear. There could be one number or one string 
  Example:</p>
  
  <pre><code>x =['6.1 a', ' d', '6.5', '5.6 c', '6.9', '6.1', '5.9 b', '4.5', '4.3', '4.3', '5.7', '5.7', '4.7 x', '5.1', '5.1']
  </code></pre>
  
  <p>into</p>
  
  <pre><code>y=['6.1', '', '6.5', '5.6', '6.9', '6.1', '5.9', '4.5', '4.3', '4.3', '5.7', '5.7', '4.7', '5.1', '5.1']
  z=['a', 'd', '', 'c', '', '', 'b', '', '', '', '', '', 'x', '', '']
  </code></pre>