title: Extract Numbers out of a Column in Pandas DataFrame using pd.series.str.extractall vs. re.findall
body: <p>I have the following column in a pandas df: </p>
  
  <pre><code>| Primary_key |
  |-------------|
  | LIT1-1.10_t |
  | LIT1-1.20_t |
  | LIT1-1.30_t |
  | LIT4-1.99_t | 
  | LIT4-1.88_t |  
  | LIT4-1.77_t | 
  </code></pre>
  
  <p>I want do extract the version number out of the 'Primary_key' (String); split it into a version_number and the the ID and put them into new columns to get the following output:</p>
  
  <pre><code>| Primary_key  | version_nr | ID |
  |--------------|------------|----|
  | LIT1-1.10_t  | 1          |10  |
  | LIT1-1.20_t  | 1          |20  |
  | LIT1-1.30_t  | 1          |30  |
  | LIT4-1.999_t | 4          |999 |
  | LIT4-1.888_t | 4          |888 |
  | LIT4-1.777_t | 4          |777 |
  </code></pre>
  
  <p>I think <code>pandas.Series.str.extractall</code> could be the solution for my task, but i have problems to apply correctly. I tried 
  <code>df['ID'] = df['Primary_Key'].str.extractall(r'(\d{3})').unstack().apply(','.join, 1)</code> to extract all the numbers into one single column ('ID') to seperate them in the next step. But with this code i only get the last three numbers:</p>
  
  <pre><code>| Primary_key  | ID |
  |--------------|----|
  | LIT1-1.10_t  |Nan |
  | LIT1-1.20_t  |Nan |
  | LIT1-1.30_t  |Nan |
  | LIT4-1.999_t |999 |
  | LIT4-1.888_t |888 |
  | LIT4-1.777_t |777 |
  </code></pre>
  
  <p>Hopefully one of you experienced programmers has an idea how to solve this problem :)</p>
  
  <p>PS: I also tried regular expression <code>re.findall('\d+',...)</code> but i think its not exactley the bee's knees.</p>