title: Pandas split columns on first % sign, on 2nd letter
body: <p>We have the following dataframe</p>
  <pre><code># raw_df
  print(raw_df.to_dict())
  
  {'Edge': {1: '-1.9%-2.2%', 2: '+5.8%-9.4%', 3: '+3.5%-7.2%'}, 'Grade': {1: 'D+D', 2: 'BF', 3: 'B-F'}}
  </code></pre>
  <p><a href="https://i.stack.imgur.com/mBQNXm.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/mBQNXm.png" alt="enter image description here" /></a></p>
  <p>We are trying to split these 2 columns into 4 columns. The <strong>Edge</strong> column should split after the first <code>%</code>, and the <strong>Grade</strong> column should split before the 2nd capital letter appears. The output should look like:</p>
  <pre><code>output_df
  
  edge_1 edge_2 grade_1 grade_2
   -1.9%  -2.2%      D+       D
   +5.8%  -9.4%       B       F
   +3.5%  -7.2%      B-       F
  </code></pre>
  <p>We have <code>raw_df[['t1_grade', 't2_grade']] = raw_df['Grade'].str.extractall(r'([A-Z])').unstack()</code> to split the <strong>Grade</strong> column, however the + and - are dropped here, which is a problem. And we are not sure how to split the <strong>Edge</strong> column after the first % appears.</p>