Pandas read_html等价于lxml选项卡

2024-10-01 13:44:45 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我有大约10个表,我已经用lxml分类。在

>>>import pandas as pd
>>>import lxml
>>>root = lxml.etree.HTML(htmlcontent)
>>>tables = root.findall('.//*[@id="info-container"]/table')
>>>readabletables = tables[::2]
>>>len(readabletables) = 5
>>>readabletables[0]
<Element table at 0x105241e60>

我想让pandas像pd.read_html一样阅读和解释这5个表。在

我该怎么做呢?在


Tags: importidpandastableshtmlastable分类
1条回答
网友
1楼 · 发布于 2024-10-01 13:44:45

我现在可以回答我自己的问题了,也许这对其他人也有帮助。在

我尝试在pandas中修改read_html源代码,但由于一些识别问题而没有成功。尽管如此,答案比你想象的要简单得多。在

>>>import pandas as pd
>>>import lxml
>>>root = lxml.etree.HTML(htmlcontent)
>>>tables = root.findall('.//*[@id="info-container"]/table')
>>>readabletables = tables[::2]
>>>len(readabletables) = 5

^这是我们已经确定的。在

现在为了让pandas的read_html识别lxml表,需要将该表转换为html。为此,我们采取以下措施:

^{pr2}$

要将中的所有表转换为列表中的pandas df:

>>>pd_tables = [pd.read_html(lxml.etree.tostring(table,method='html')) for table in readabletables]
>>>len(pd_tables)
5
>>>type(pd_tables[0])
<class 'pandas.core.frame.DataFrame'>

任务完成。在

相关问题 更多 >