欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python實(shí)現(xiàn)讀取HTML表格 pd.read_html()

 更新時(shí)間:2022年07月14日 14:34:03   作者:SpikeKing  
這篇文章主要介紹了Python實(shí)現(xiàn)讀取HTML表格 pd.read_html(),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Python讀取HTML表格

數(shù)據(jù)部門提供的數(shù)據(jù)是xls格式的文件,但是執(zhí)行讀取xls文件的腳本報(bào)錯(cuò)。

xlrd報(bào)錯(cuò):

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  # 二維數(shù)組

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

使用pandas的read_html讀取文件,同時(shí)替換nan為空字符,數(shù)據(jù)格式保持一致。

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讀取數(shù)據(jù)不完整問題

問題:有一個(gè)較大的表格數(shù)據(jù)存在了html中,打算用read_html直接取出來這部分?jǐn)?shù)據(jù),但后來發(fā)現(xiàn)read_html讀取的數(shù)據(jù)不完整,后來檢查html的table都沒有任何問題

解決辦法

pd.read_html的默認(rèn)解析器為 'lxml' ,添加參數(shù)flavor='bs4'便可解決

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 如何正確理解python裝飾器

    如何正確理解python裝飾器

    裝飾器(Decorators)是 Python 的一個(gè)重要部分。簡單地說:他們是修改其他函數(shù)的功能的函數(shù)。他們有助于讓我們的代碼更簡短
    2021-06-06
  • 如何用Python進(jìn)行時(shí)間序列分解和預(yù)測

    如何用Python進(jìn)行時(shí)間序列分解和預(yù)測

    這篇文章主要介紹了如何用Python進(jìn)行時(shí)間序列分解和預(yù)測,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-02-02
  • python2.7 mayavi 安裝圖文教程(推薦)

    python2.7 mayavi 安裝圖文教程(推薦)

    下面小編就為大家?guī)硪黄猵ython2.7 mayavi 安裝圖文教程(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • Python實(shí)現(xiàn)抓取網(wǎng)頁并且解析的實(shí)例

    Python實(shí)現(xiàn)抓取網(wǎng)頁并且解析的實(shí)例

    這篇文章主要介紹了Python實(shí)現(xiàn)抓取網(wǎng)頁并且解析的功能實(shí)例,主要以解析百度問答為例說明其原理與方法,需要的朋友可以參考下
    2014-09-09
  • python不到50行代碼完成了多張excel合并的實(shí)現(xiàn)示例

    python不到50行代碼完成了多張excel合并的實(shí)現(xiàn)示例

    這篇文章主要介紹了python不到50行代碼完成了多張excel合并的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • Python3實(shí)現(xiàn)網(wǎng)頁內(nèi)容轉(zhuǎn)換成PDF文檔和圖片

    Python3實(shí)現(xiàn)網(wǎng)頁內(nèi)容轉(zhuǎn)換成PDF文檔和圖片

    pdfkit是把 HTML+CSS 格式的文件轉(zhuǎn)換成 PDF 的一種工具,它是 wkhtmltopdf 這個(gè)工具包的 python 封裝。本文將利用pdfkit實(shí)現(xiàn)網(wǎng)頁內(nèi)容轉(zhuǎn)換成PDF文檔和圖片效果,感興趣的可以學(xué)習(xí)一下
    2022-06-06
  • python分析網(wǎng)頁上所有超鏈接的方法

    python分析網(wǎng)頁上所有超鏈接的方法

    這篇文章主要介紹了python分析網(wǎng)頁上所有超鏈接的方法,涉及Python使用urllib模塊操作頁面超鏈接的技巧,需要的朋友可以參考下
    2015-05-05
  • keras slice layer 層實(shí)現(xiàn)方式

    keras slice layer 層實(shí)現(xiàn)方式

    這篇文章主要介紹了keras slice layer 層實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Python使用oslo.vmware管理ESXI虛擬機(jī)的示例參考

    Python使用oslo.vmware管理ESXI虛擬機(jī)的示例參考

    oslo.vmware是OpenStack通用框架中的一部分,主要用于實(shí)現(xiàn)對(duì)虛擬機(jī)的管理任務(wù),借助oslo.vmware模塊我們可以管理Vmware ESXI集群環(huán)境。
    2021-06-06
  • Python中的線程同步的常用方法總結(jié)

    Python中的線程同步的常用方法總結(jié)

    在Python多線程編程中,我們常常需要處理多個(gè)線程同時(shí)訪問共享數(shù)據(jù)的情況,為了防止數(shù)據(jù)在多線程之間出現(xiàn)沖突,我們需要對(duì)線程進(jìn)行同步。本文將詳細(xì)介紹Python中的線程同步的幾種常用方法,需要的朋友可以參考下
    2023-06-06

最新評(píng)論