第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何使用 pandas 從文件中提取 html 表?

如何使用 pandas 從文件中提取 html 表?

守候你守候我 2023-09-19 17:33:56
我是 pandas 新手,我正在嘗試從一些 HTML 文件中提取一些數(shù)據(jù)。如何轉(zhuǎn)換多個(gè) HTML 表,如下所示:       PS4Game Name | PriceGoW       | 49.99FF VII R  | 59.99       XBXGame Name | PriceGears 5   | 49.99Forza 5   | 59.99<table>  <tr colspan="2">    <td>PS4</td>  </tr>  <tr>    <td>Game Name</td>    <td>Price</td>  </tr>  <tr>    <td>GoW</td>    <td>49.99</td>  </tr>  <tr>    <td>FF VII R</td>    <td>59.99</td>  </tr></table><table>  <tr colspan="2">    <td>XBX</td>  </tr>  <tr>    <td>Game Name</td>    <td>Price</td>  </tr>  <tr>    <td>Gears 5</td>    <td>49.99</td>  </tr>  <tr>    <td>Forza 5</td>    <td>59.99</td>  </tr></table>像這樣的 json 對(duì)象:[  { "Game Name": "Gow", "Price": "49.99", "platform": "PS4"},  { "Game Name": "FF VII R", "Price": "59.99", "platform": "PS4"},  { "Game Name": "Gears 5", "Price": "49.99", "platform": "XBX"},  { "Game Name": "Forza 5", "Price": "59.99", "platform": "XBX"}]我嘗試使用 pandas.read_html(path/to/file) 加載包含表的 html 文件,它確實(shí)返回了 DataFrame 列表,但我不知道之后如何提取數(shù)據(jù),特別是平臺(tái)名稱(chēng)位于標(biāo)題而不是作為單獨(dú)的列。我使用 pandas 是因?yàn)槲覐陌渌问降谋砀窈?HTML 代碼的本地 htm 文件中提取這些表格,所以我使用:tables = pandas.read_html(file_path, match="Game Name")使用基于該列名稱(chēng)的匹配參數(shù)快速隔離我需要的表。
查看完整描述

1 回答

?
紅顏莎娜

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超13個(gè)贊

import pandas as pd


# list to save all dataframe from all tables in all files

df_list = list()


# list of files to load

list_of_files = ['test.html']


# iterate through your files

for file in list_of_files:

    

    # create a list of dataframes from the tables in the file

    dfl = pd.read_html(file, match='Game Name')

    

    # fix the headers and columns

    for d in dfl:


        # select row 1 as the headers

        d.columns = d.iloc[1]


        # select row 0, column 0 as the platform

        d['platform'] = d.iloc[0, 0]


        # selection row 2 and below as the data, row 0 and 1 were the headers

        d = d.iloc[2:]


        # append the cleaned dataframe to df_list

        df_list.append(d.copy())

        

# create a single dataframe

df = pd.concat(df_list).reset_index(drop=True)


# create a list of dicts from df

records = df.to_dict('records')


print(records)

[out]:

[{'Game Name': 'GoW', 'Price': '49.99', 'platform': 'PS4'},

 {'Game Name': 'FF VII R', 'Price': '59.99', 'platform': 'PS4'},

 {'Game Name': 'Gears 5', 'Price': '49.99', 'platform': 'XBX'},

 {'Game Name': 'Forza 5', 'Price': '59.99', 'platform': 'XBX'}]


查看完整回答
反對(duì) 回復(fù) 2023-09-19
  • 1 回答
  • 0 關(guān)注
  • 126 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)