title: split string into number and text with pandas
body: <h1>The Setup</h1>
  
  <p>I have a <code>pandas</code> dataframe that contains a column 'iso' containing chemical isotope symbols, such as '4He', '16O', '197Au'.  I want to label many (but not all) isotopes on a plot using the <code>annotate()</code> function in <code>matplotlib</code>.  The label format should have the atomic mass in superscript.  I can do this with the LaTeX style formatting:</p>
  
  <pre><code>axis.annotate('$^{4}$He', xy=(x, y), xycoords='data')
  </code></pre>
  
  <p>I could write dozens of <code>annotate()</code> statements like the one above for each isotope I want to label, but I'd rather automate.</p>
  
  <h1>The Question</h1>
  
  <p><strong>How can I extract the isotope number and name from my iso column?</strong>  </p>
  
  <p>With those pieces extracted I can make the labels.  Lets say we dump them into the variables <code>Num</code> and <code>Sym</code>.  Now I can loop over my isotopes and do something like this:</p>
  
  <pre><code>for i in list_of_isotopes:
    (Num, Sym) = df[df.iso==i].iso.str.MISSING_STRING_METHOD(???)
    axis.annotate('$^{%s}$%s' %(Num, Sym), xy=(x[Num], y[Num]), xycoords='data')
  </code></pre>
  
  <p>Presumably, there is a <code>pandas</code> string methods that I can drop into the above.  But I'm having trouble coming up with a solution.  I've been trying <code>split()</code> and <code>extract()</code> with a few different patterns, but can't get the desired effect.</p>