【问题标题】:Pandas keeps creating lists instead of DataFrames out of HTML inputPandas 不断从 HTML 输入中创建列表而不是 DataFrame
【发布时间】:2018-08-19 00:25:29
【问题描述】:

我使用 requests 模块从网页内容中创建了一个 HTML 对象。我试图在那个对象上使用 pandas 来 read_html,但它只是创建了一个巨大的列表。它看起来像一个数据框,但类型是列表,我不能在上面调用数据框方法。

这是我拿到HTML对象后为它写的代码:

headers = {'User-Agent': ua.google}

tables = pd.read_html(response.content)

这就是我调用表格时的样子:

看起来不错,一旦数据帧的形式出现错误数据,我可以修复它,但我不知道如何将其从类型列表更改为类型数据帧,我也不知道为什么会这样首先进入列表而不是数据框。

作为第二个说明,我尝试使用 BeautifulSoup 读取 HTML 并提取表格,它只给了我表格的内容,但是当我尝试通过 pandas 读取它时,如果我尝试 pd.read_html(str(表))然后预览数据框,我只是在列表中获取站点名称和底部内容,而不是数据框。

【问题讨论】:

  • 试试tables[0]?
  • 成功了!我没有意识到它会创建一个 DataFrames 列表,谢谢!

标签: python pandas dataframe beautifulsoup python-requests


【解决方案1】:

pandas.read_html 正在返回数据帧列表。

试试:

 tables[0]

在 Google 的 Colaboratory 中进行实验。

Code runs here

Notebook can be found on my github here

【讨论】:

    猜你喜欢
    • 2022-10-01
    • 2017-10-03
    • 2015-03-09
    • 2019-08-31
    • 2021-08-31
    • 1970-01-01
    • 1970-01-01
    • 2020-05-04
    • 1970-01-01
    相关资源
    最近更新 更多