繁体   English   中英

熊猫读取 html 表到数据框无法打印

[英]Pandas read html table to dataframe cannot print

我通过像这样使用 beautifulsoup 来获得 html 表。

alltable = bt.find_all('table')
print(alltable)

它显示这样的输出。

[<table>
<thead>
<tr><th>ID</th><th>Name</th><th>User</th></tr>
</thead>
<tbody>

<tr valign="TOP">
<td><a href="/printers/PDF">PDF</a>-1 </td>
<td>Test </td>
<td>User1 </td>
</tr>

<tr valign="TOP">
<td><a href="/printers/PDF">PDF</a>-2 </td>
<td>Test </td>
<td>User1 </td>
</tr>

<tr valign="TOP">
<td><a href="/printers/PDF">PDF</a>-3 </td>
<td>Document1 </td>
<td>User1 </td>
</tr>

</tbody>
</table>]

我将 html 表读取到数据框并像这样打印。

df = pd.read_html(str(alltable))
print(df['Name'])

它显示这样的错误。

TypeError: list indices must be integers or slices, not str

如何解决?

Panda 的 read_html返回一个 DataFrame 对象列表 - 而不是单个 DataFrame 对象。 在您的情况下,您需要索引到列表的唯一元素:

>>> df[0]['Name']
0         Test
1         Test
2    Document1
Name: Name, dtype: object

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM