
- Python Pandas 教程
- Python Pandas - 首頁
- Python Pandas - 簡介
- Python Pandas - 環境搭建
- Python Pandas - 基礎
- Python Pandas - 資料結構簡介
- Python Pandas - 索引物件
- Python Pandas - 面板(Panel)
- Python Pandas - 基本功能
- Python Pandas - 資料索引與選擇
- Python Pandas - Series
- Python Pandas - Series
- Python Pandas - 切片 Series 物件
- Python Pandas - Series 物件的屬性
- Python Pandas - Series 物件的算術運算
- Python Pandas - 將 Series 轉換為其他物件
- Python Pandas - DataFrame
- Python Pandas - DataFrame
- Python Pandas - 訪問 DataFrame
- Python Pandas - 切片 DataFrame 物件
- Python Pandas - 修改 DataFrame
- Python Pandas - 從 DataFrame 中刪除行
- Python Pandas - DataFrame 的算術運算
- Python Pandas - I/O 工具
- Python Pandas - I/O 工具
- Python Pandas - 處理 CSV 格式
- Python Pandas - 讀取和寫入 JSON 檔案
- Python Pandas - 從 Excel 檔案讀取資料
- Python Pandas - 將資料寫入 Excel 檔案
- Python Pandas - 處理 HTML 資料
- Python Pandas - 剪貼簿
- Python Pandas - 處理 HDF5 格式
- Python Pandas - 與 SQL 的比較
- Python Pandas - 資料處理
- Python Pandas - 排序
- Python Pandas - 重索引
- Python Pandas - 迭代
- Python Pandas - 連線
- Python Pandas - 統計函式
- Python Pandas - 描述性統計
- Python Pandas - 處理文字資料
- Python Pandas - 函式應用
- Python Pandas - 選項和自定義
- Python Pandas - 視窗函式
- Python Pandas - 聚合
- Python Pandas - 合併/連線
- Python Pandas - 多級索引
- Python Pandas - 多級索引基礎
- Python Pandas - 使用多級索引進行索引
- Python Pandas - 使用多級索引進行高階重索引
- Python Pandas - 重新命名多級索引標籤
- Python Pandas - 對多級索引進行排序
- Python Pandas - 二元運算
- Python Pandas - 二元比較運算
- Python Pandas - 布林索引
- Python Pandas - 布林掩碼
- Python Pandas - 資料重塑和透視表
- Python Pandas - 透視表
- Python Pandas - 堆疊和取消堆疊
- Python Pandas - 熔化
- Python Pandas - 計算虛擬變數
- Python Pandas - 類別資料
- Python Pandas - 類別資料
- Python Pandas - 類別資料的排序和排序
- Python Pandas - 比較類別資料
- Python Pandas - 處理缺失資料
- Python Pandas - 缺失資料
- Python Pandas - 填充缺失資料
- Python Pandas - 缺失值的插值
- Python Pandas - 刪除缺失資料
- Python Pandas - 使用缺失資料進行計算
- Python Pandas - 處理重複資料
- Python Pandas - 重複資料
- Python Pandas - 計數和檢索唯一元素
- Python Pandas - 重複標籤
- Python Pandas - 分組和聚合
- Python Pandas - GroupBy
- Python Pandas - 時間序列資料
- Python Pandas - 日期功能
- Python Pandas - 時間增量
- Python Pandas - 稀疏資料結構
- Python Pandas - 稀疏資料
- Python Pandas - 視覺化
- Python Pandas - 視覺化
- Python Pandas - 其他概念
- Python Pandas - 注意事項和陷阱
- Python Pandas 有用資源
- Python Pandas - 快速指南
- Python Pandas - 有用資源
- Python Pandas - 討論
Python Pandas - 處理 HTML 資料
Pandas 庫提供了廣泛的功能來處理來自各種格式的資料。其中一種格式是 HTML(超文字標記語言),它是一種常用於構建網頁內容的格式。HTML 檔案可能包含表格資料,可以使用 Pandas 庫提取和分析這些資料。
HTML 表格是一種結構化格式,用於在網頁中以行和列的形式表示表格資料。可以透過使用 **pandas.read_html()** 函式從 HTML 中提取此表格資料。也可以使用 **DataFrame.to_html()** 方法將 Pandas DataFrame 寫回 HTML 表格。
在本教程中,我們將學習如何使用 Pandas 處理 HTML 資料,包括讀取 HTML 表格以及將 Pandas DataFrame 寫入 HTML 表格。
從 URL 讀取 HTML 表格
**pandas.read_html()** 函式用於從 HTML 檔案、字串或 URL 讀取表格。它會自動解析 HTML 中的 <table> 元素,並返回一個 **pandas.DataFrame** 物件列表。
示例
以下是使用 **pandas.read_html()** 函式從 URL 讀取資料的基本示例。
import pandas as pd # Read tables from a SQL tutorial url = "https://tutorialspoint.tw/sql/sql-clone-tables.htm" tables = pd.read_html(url) # Access the first table from the URL df = tables[0] # Display the resultant DataFrame print('Output First DataFrame:', df.head())
以下是上述程式碼的輸出 -
Output First DataFrame:
ID | NAME | AGE | ADDRESS | SALARY | |
---|---|---|---|---|---|
0 | 1 | Ramesh | 32 | Ahmedabad | 2000.0 |
1 | 2 | Khilan | 25 | Delhi | 1500.0 |
2 | 3 | Kaushik | 23 | Kota | 2000.0 |
3 | 4 | Chaitali | 25 | Mumbai | 6500.0 |
4 | 5 | Hardik | 27 | Bhopal | 8500.0 |
從字串讀取 HTML 資料
可以透過使用 Python 的 **io.StringIO** 模組直接從字串讀取 HTML 資料。
示例
以下示例演示瞭如何在不儲存到檔案的情況下使用 StringIO 讀取 HTML 字串。
import pandas as pd from io import StringIO # Create a HTML string html_str = """ <table> <tr><th>C1</th><th>C2</th><th>C3</th></tr> <tr><td>a</td><td>b</td><td>c</td></tr> <tr><td>x</td><td>y</td><td>z</td></tr> </table> """ # Read the HTML string dfs = pd.read_html(StringIO(html_str)) print(dfs[0])
以下是上述程式碼的輸出 -
C1 | C2 | C3 | |
---|---|---|---|
0 | a | b | c |
1 | x | y | z |
示例
這是在不使用 **io.StringIO** 模組的情況下讀取 HTML 字串的另一種方法。在這裡,我們將 HTML 字串儲存到一個臨時檔案中,然後使用 **pd.read_html()** 函式讀取它。
import pandas as pd # Create a HTML string html_str = """ <table> <tr><th>C1</th><th>C2</th><th>C3</th></tr> <tr><td>a</td><td>b</td><td>c</td></tr> <tr><td>x</td><td>y</td><td>z</td></tr> </table> """ # Save to a temporary file and read with open("temp.html", "w") as f: f.write(html_str) df = pd.read_html("temp.html")[0] print(df)
以下是上述程式碼的輸出 -
C1 | C2 | C3 | |
---|---|---|---|
0 | a | b | c |
1 | x | y | z |
處理來自 HTML 檔案的多個表格
在讀取包含多個表格的 HTML 檔案時,我們可以使用 **pd.read_html()** 函式的 **match** 引數來讀取具有特定文字的表格。
示例
以下示例使用 **match** 引數從包含多個表格的 HTML 檔案中讀取具有特定文字的表格。
import pandas as pd # Read tables from a SQL tutorial url = "https://tutorialspoint.tw/sql/sql-clone-tables.htm" tables = pd.read_html(url, match='Field') # Access the table df = tables[0] print(df.head())
以下是上述程式碼的輸出 -
Field | Type | Null | Key | Default | Extra | |
---|---|---|---|---|---|---|
1 | ID | int(11) | NO | PRI | NaN | NaN |
2 | NAME | varchar(20) | NO | NaN | NaN | NaN |
3 | AGE | int(11) | NO | NaN | NaN | NaN |
4 | ADDRESS | char(25) | YES | NaN | NaN | NaN |
5 | SALARY | decimal(18,2) | YES | NaN | NaN | NaN |
將 DataFrame 寫入 HTML
Pandas DataFrame 物件可以使用 **DataFrame.to_html()** 方法轉換為 HTML 表格。如果 **buf** 引數設定為 None,則此方法將返回一個字串。
示例
以下示例演示瞭如何使用 **DataFrame.to_html()** 方法將 Pandas DataFrame 寫入 HTML 表格。
import pandas as pd # Create a DataFrame df = pd.DataFrame([[1, 2], [3, 4]], columns=["A", "B"]) # Convert the DataFrame to HTML table html = df.to_html() # Display the HTML string print(html)
以下是上述程式碼的輸出 -
<table border="1" class="dataframe"> <thead> <tr style="text-align: right;"> <th></th> <th>A</th> <th>B</th> </tr> </thead> <tbody> <tr> <th>0</th> <td>1</td> <td>2</td> </tr> <tr> <th>1</th> <td>3</td> <td>4</td> </tr> </tbody> </table>