title: How would I create new rows in a dataframe based on conditions of the columns?
body: <p>Lets say I have a dataframe like so:</p>
  <div class="s-table-container">
  <table class="s-table">
  <thead>
  <tr>
  <th>ID</th>
  <th>Color</th>
  <th>Type</th>
  </tr>
  </thead>
  <tbody>
  <tr>
  <td>AAA</td>
  <td>Blue</td>
  <td>1</td>
  </tr>
  <tr>
  <td>BBB</td>
  <td>Red</td>
  <td>1</td>
  </tr>
  <tr>
  <td>BBB</td>
  <td>Red</td>
  <td>2</td>
  </tr>
  <tr>
  <td>CCC</td>
  <td>Green</td>
  <td>1</td>
  </tr>
  <tr>
  <td>DDD</td>
  <td>Yellow</td>
  <td>2</td>
  </tr>
  </tbody>
  </table>
  </div>
  <p>I have a list of all possible Types. In this case, the list is just [&quot;1&quot;, &quot;2&quot;]. I want to create new rows (or a new df) so that each ID has a row for every type. The color value would stay the same for each ID. So the result I would end up with would be:</p>
  <div class="s-table-container">
  <table class="s-table">
  <thead>
  <tr>
  <th>ID</th>
  <th>Color</th>
  <th>Type</th>
  </tr>
  </thead>
  <tbody>
  <tr>
  <td>AAA</td>
  <td>Blue</td>
  <td>1</td>
  </tr>
  <tr>
  <td>AAA</td>
  <td>Blue</td>
  <td>2</td>
  </tr>
  <tr>
  <td>BBB</td>
  <td>Red</td>
  <td>1</td>
  </tr>
  <tr>
  <td>BBB</td>
  <td>Red</td>
  <td>2</td>
  </tr>
  <tr>
  <td>CCC</td>
  <td>Green</td>
  <td>1</td>
  </tr>
  <tr>
  <td>CCC</td>
  <td>Green</td>
  <td>2</td>
  </tr>
  <tr>
  <td>DDD</td>
  <td>Yellow</td>
  <td>1</td>
  </tr>
  <tr>
  <td>DDD</td>
  <td>Yellow</td>
  <td>2</td>
  </tr>
  </tbody>
  </table>
  </div>
  <p>I put the rows in order for simplicity and readability, but they dont actually need to be in order. Is something like this possible?</p>