Just keep it simple. Filter your Dataframe to desired recored before you call to_html()
In example I filter to rows when index is between 1 and 2
df = pd.DataFrame([{'Zone': 'AZ', 'roll': '', 'prod_id': '', 'match_id': '32'},
{'Zone': 'PO', 'roll': 'cshdgs', 'prod_id': '+1352648', 'match_id': '13'},
{'Zone': 'RT', 'roll': 'abc', 'prod_id': '+1235', 'match_id': '12'},
{'Zone': 'SZ', 'roll': 'cshdgs', 'prod_id': '+1352648', 'match_id': '1352'},
{'Zone': 'WW', 'roll': 'abc', 'prod_id': '+1235', 'match_id': '123'}]).reset_index()
df[df["index"].between(1,2)].to_html(index=False)
output
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th>index</th>
<th>Zone</th>
<th>roll</th>
<th>prod_id</th>
<th>match_id</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>PO</td>
<td>cshdgs</td>
<td>+1352648</td>
<td>13</td>
</tr>
<tr>
<td>2</td>
<td>RT</td>
<td>abc</td>
<td>+1235</td>
<td>12</td>
</tr>
</tbody>
</table>