title: Split (explode) range in dataframe into multiple rows
body: <p>This question is similar to <a href="https://stackoverflow.com/questions/12680754/split-explode-pandas-dataframe-string-entry-to-separate-rows">Split (explode) pandas dataframe string entry to separate rows</a> but includes a question about adding ranges.</p>
  
  <p>I have a DataFrame:</p>
  
  <pre><code>+------+---------+----------------+
  | Name | Options | Email          |
  +------+---------+----------------+
  | Bob  | 1,2,4-6 | bob@email.com  |
  +------+---------+----------------+
  | John |   NaN   | john@email.com |
  +------+---------+----------------+
  | Mary |   1,2   | mary@email.com |
  +------+---------+----------------+
  | Jane | 1,3-5   | jane@email.com |
  +------+---------+----------------+
  </code></pre>
  
  <p>And I'd like the <code>Options</code> column to be split by the comma as well as rows added for a range.</p>
  
  <pre><code>+------+---------+----------------+
  | Name | Options | Email          |
  +------+---------+----------------+
  | Bob  | 1       | bob@email.com  |
  +------+---------+----------------+
  | Bob  | 2       | bob@email.com  |
  +------+---------+----------------+
  | Bob  | 4       | bob@email.com  |
  +------+---------+----------------+
  | Bob  | 5       | bob@email.com  |
  +------+---------+----------------+
  | Bob  | 6       | bob@email.com  |
  +------+---------+----------------+
  | John | NaN     | john@email.com |
  +------+---------+----------------+
  | Mary | 1       | mary@email.com |
  +------+---------+----------------+
  | Mary | 2       | mary@email.com |
  +------+---------+----------------+
  | Jane | 1       | jane@email.com |
  +------+---------+----------------+
  | Jane | 3       | jane@email.com |
  +------+---------+----------------+
  | Jane | 4       | jane@email.com |
  +------+---------+----------------+
  | Jane | 5       | jane@email.com |
  +------+---------+----------------+
  </code></pre>
  
  <p>How can I go beyond using <code>concat</code> and <code>split</code> like the reference SO article says to accomplish this? I need a way to add a range.</p>
  
  <p>That article uses the following code to split comma delineated values (<code>1,2,3</code>):</p>
  
  <pre><code>In [7]: a
  Out[7]: 
      var1  var2
  0  a,b,c     1
  1  d,e,f     2
  
  In [55]: pd.concat([Series(row['var2'], row['var1'].split(','))              
                      for _, row in a.iterrows()]).reset_index()
  Out[55]: 
    index  0
  
  0     a  1
  1     b  1
  2     c  1
  3     d  2
  4     e  2
  5     f  2
  </code></pre>
  
  <p>Thanks in advance for your suggestions!</p>
  
  <p><strong>Update 2/14</strong> Sample data was updated to match my current case.</p>