pandas read_html 方法中的bug?
我觉得pandas里的read_html方法在处理 rowspan(跨行)和 colspan(跨列)的时候有问题。
举个例子:
html_table = io.StringIO(u'''<table>
<thead>
<tr>
<th rowspan="2">Time</th>
<th rowspan="2">Temp</th>
<th colspan="3">Cloud Cover</th>
</tr>
<tr>
<th>Low</th>
<th>Middle</th>
<th>High</th>
</tr>
</thead>
<tbody>
<tr>
<td>22:00</td>
<td>12C</td>
<td>Lorem</td>
<td>Ipsum</td>
<td>Dolor</td>
</tr>
</tbody>
</table>''')
用pd.read_html(html_table)得到的结果是
[ Time Temp Cloud Cover Low Middle High
0 2014-05-16 22:00:00 12C Lorem Ipsum Dolor NaN
[1 rows x 6 columns]]
这是个bug,还是我操作错了呢?
1 个回答
0
pandas 版本大于等于 0.24.0 的时候,可以理解 colspan
和 rowspan
这两个属性。根据发布说明:
result = pd.read_html("""
<table>
<thead>
<tr>
<th>A</th><th>B</th><th>C</th>
</tr>
</thead>
<tbody>
<tr>
<td colspan="2">1</td><td>2</td>
</tr>
</tbody>
</table>""")
result
输出结果:
[ A B C
0 1 1 2
之前的版本会返回以下内容:
[ A B C
0 1 2 NaN]