资讯专栏INFORMATION COLUMN

Python功能解读:读取HTML表格 pd.read_html()

89542767 / 785人阅读

  本文主要是给大家介绍Python实现读取HTML表格pd.read_html(),具有很强的实战意义,大家在今后的工作中也会遇到,希望能给大家带来一定的帮助,也希望大家能够多多进行指教。

Python读取HTML表格

数据部门提供的数据是xls格式的文件,但是执行读取xls文件的脚本报错。

xlrd报错:

xlrd.biffh.XLRDError: Unsupported format, or corrupt file: Expected BOF record; found b'<html xm'

读取xlrd的脚本

data_lines = read_excel_file(self.file_path)
 
def read_excel_file(file_path):
    """
    读取excel文件
    """
    import xlrd
    print('[Info] excel file: {}'.format(file_path))
    book = xlrd.open_workbook(file_path)
    sheet = book.sheet_by_index(0)
    data_lines = []
    for row in range(0, sheet.nrows):
        line_data = []
        for column in range(0, sheet.ncols):
            val = sheet.cell(row, column).value
            line_data.append(val)
        data_lines.append(line_data)
    return data_lines  # 二维数组

原因是文件格式是HTML表格,参考python xlrd unsupported format, or corrupt file.

使用pandas的read_html读取文件,同时替换nan为空字符,数据格式保持一致。

def read_html_table(file_path):
    """
    读取html表格
    """
    import pandas as pd
    pd_table = pd.read_html(file_path)
    df = pd_table[0]
    # num_col = df.shape[1]
    # num_row = df.shape[0]
    df_data = df.values.tolist()
    df_data = df_data[1:]
    for r_idx, row in enumerate(df_data):
        for c_idx, value in enumerate(row):
            # 判断nan,参考https://stackoverflow.com/questions/944700/how-can-i-check-for-nan-values
            if value != value:
                df_data[r_idx][c_idx] = ""
    return df_data

读取问题解决。

pd.read_html读取数据不完整问题

问题:有一个较大的表格数据存在了html中,打算用read_html直接取出来这部分数据,但后来发现read_html读取的数据不完整,后来检查html的table都没有任何问题

解决办法

pd.read_html的默认解析器为 'lxml' ,添加参数flavor='bs4'便可解决

以上就是个人的一些总结,希望可以为各位读者带来一定的帮助。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/127590.html

相关文章

  • Pandas完成在线文件和剪切板数据读取详细说明

      文中关键给大家介绍是指Pandas二种少使用的读取文件方式:载入在线文件的信息和载入剪切板的信息,感兴趣的朋友能够来了解一下吧一块儿学习下  序言  小伙伴们好,我就是Peter~  文中记载的是Pandas二种少使用的读取文件方式:   载入在线文件的信息   载入剪切板的信息   申明:文中案例和在线数据仅限于学术研究共享   read_html   该函数公式表示是立即载入线上的html...

    89542767 评论0 收藏0
  • Pandas技巧大全:含具体代码实现

    摘要:查看数据的基本统计信息。用处是用于数据读写处理更改提取等一系列操作的包,可以说,所有能实现的功能,都可以通过代码轻松实现,因此,对于学习非常重要。如果在里,需要翻到最低和最右,而且可能由于溢出无法穷尽可以简单的实现。 放在前面的话                         这学期刻意少...

    netmou 评论0 收藏0
  • Python 分析过往 36 年春晚节目数据,发现一些趣事

    摘要:节目单表是每一年春晚上表演的节目,包括节目类型节目名演员名这几项数据。好消息是,今年的春晚她会继续主持。对她的印象莫过于每年春晚尾声的那曲难忘今宵。年的春晚,她一人连唱首歌,前无古人,也后无来者。 showImg(https://segmentfault.com/img/remote/1460000018120380); 看过那么多春晚,哪一年、哪些节目、哪些人你还留有深刻印象呢。 记...

    hufeng 评论0 收藏0
  • 数据科学

    摘要:资料分析资料筛选侦测缺失值补齐缺失值资料转换处理时间格式数据重塑资料学习正规运算式处理资料格式,提供高效能,简易使用的数据格式让用户可以快速操作及分析资料。使用平均数,中位数,众数等叙述性统计补齐缺失值。 有90%的有用数据,都在数据库中。 数据 数据类型 定性数据: 叙述特征或种类,例如:种族,区域。 定量数据: 可以被计数或测量,例如:身高,消费金额。 定量数据 离散数据只能...

    anquan 评论0 收藏0
  • Python Library】csv — CSV File Reading and Writing

    摘要:一概述逗号分隔符文件是表格与数据库操作之中最常用的输入输出格式。但是尽管不同规范的之中,分隔符和引用符千差万别,他们的格式还是大体相似的,因此制作一个可以高效处理文件中的数据同时还能将读写的细节隐去的模块并不是什么难事儿。 一、概述 CSV(逗号分隔符)文件是表格与数据库操作之中最常用的输入输出格式。在RFC4180中的文件描述标准对CSV格式进行规范之前,CSV格式文件就已经被应用了...

    zhigoo 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<