【问题标题】:pd.read_html() imports a list rather than a dataframepd.read_html() 导入列表而不是数据框
【发布时间】:2017-02-04 06:33:33
【问题描述】:

我使用pd.read_html() 从网页导入表格,但没有将数据结构化为数据框,Python 将其作为列表导入。如何将数据作为数据框导入?谢谢!

代码如下:

import pandas as pd

import html5lib

url = 'http://www.fdic.gov/bank/individual/failed/banklist.html'

dfs = pd.read_html(url)

type(dfs)

Out[1]: list

【问题讨论】:

    标签: python html pandas


    【解决方案1】:

    .read_html() 生成一个数据框列表(HTML 源代码中可能有多个表),通过索引获取所需的一个。在您的情况下,只有一个数据框:

    dfs = pd.read_html(url)
    df = dfs[0]
    print(df)
    

    请注意,如果 HTML 源代码中没有 tables,它将返回错误并且永远不会生成空列表。

    【讨论】:

    • 谢谢!确实 df 是一个数据框。但是,当我尝试 df Python 上的 .head、.tail 和 .index 参数时,返回了错误消息。我该如何纠正这个问题?
    • @AlexanderKonstantinidis 很有趣,df.taildf.headdf.index 为我工作。您遇到了什么错误?
    • AttributeError:“DataFrame”对象没有属性“heads”,AttributeError:“DataFrame”对象没有属性“tails”,TypeError:“Index”对象不可调用
    • @AlexanderKonstantinidis 啊,是tailheadindex——没有s前缀也没有()(这些不是方法)。
    【解决方案2】:
    import pandas as pd
    import html5lib
    url = 'http://www.fdic.gov/bank/individual/failed/banklist.html'
    dfs = pd.read_html(url)
    df = pd.concat(dfs)
    df
    

    【讨论】:

    • 这对我很有帮助。解决了将表格抓取为列表的问题,然后将该列表转换为数据框
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-20
    • 2023-03-19
    • 2012-10-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多