Pandas DataFrame で HTML テーブルを読み取る
-
read_html()
メソッドを使用して Pandas DataFrame の HTML テーブルを読み取る -
read_html()
メソッドを使用して URL から HTML テーブルを読み取る -
read_html()
メソッドを使用して文字列から HTML テーブルを読み取る -
read_html()
メソッドを使用してファイルから HTML テーブルを読み取る
このチュートリアルでは、URL、文字列、またはファイルから HTML テーブルを読み取り、それらを Python で Pandas データフレームに変換する方法を示します。 read_html()
は Pandas ライブラリの迅速で便利なメソッドで、Pandas データ フレーム内の HTML テーブルをスクレイピングするために使用されます。
read_html()
メソッドを使用して Pandas DataFrame の HTML テーブルを読み取る
read_html()
メソッドは、Web サイトの URL、HTML 文字列、または HTML テキスト ファイルを引数として受け取ります。 Web サイト、文字列、またはファイルには複数のテーブルが含まれている可能性があるため、すべてのテーブルをスクレイピングし、データ フレームのリストの形式で返します。
テーブルが存在しない場合、コードは ValueError: No tables found
を返します。
lxml
を Python にインストールする
lxml
は、HTML および XML データのデータのスクレイピング、処理、および処理に使用される Python のライブラリです。 read_html()
メソッドを使用する前に、次のコマンドを使用して lxml
をインストールし、Jupyter Notebook を使用している場合はカーネルを再起動する必要があります。
#Python 3.x
pip install lxml
read_html()
メソッドを使用して URL から HTML テーブルを読み取る
Web サイトの URL を read_html()
メソッドの引数として渡し、すべてのテーブルを読み取り、それらを Pandas データフレームに保存します。 データフレームで len()
メソッドを使用して、返されたテーブルの数をカウントできます。
ここでは、2つのテーブルのリストを取得します。 最初のテーブルにアクセスする場合は、リスト内のインデックス 0
を介してアクセスします。
コード例:
# Python 3.x
import pandas as pd
tables = pd.read_html("https://www.w3schools.com/html/html_tables.asp")
print("No of tables returned:", len(tables))
display(tables[0])
出力:
read_html()
メソッドを使用して文字列から HTML テーブルを読み取る
次のコードでは、table
変数に格納された文字列形式の HTML テーブルがあります。 テーブルを Pandas データフレームに変換するには、read_html()
メソッドを呼び出し、HTML 文字列を引数として渡します。
HTML 文字列にはテーブルが 1つしかないため、データフレームのリストの長さは 1
です。 インデックスを使用してアクセスすることで、テーブルを表示します。
コード例:
# Python 3.x
import pandas as pd
table = """<table>
<thead>
<tr>
<th>Name</th>
<th>Department</th>
<th>Marks</th>
<th>Age</th>
</tr>
</thead>
<tbody>
<tr>
<td>Robert</td>
<td>CS</td>
<td>60</td>
<td>20</td>
</tr>
<tr>
<td>Sam</td>
<td>SE</td>
<td>81</td>
<td>21</td>
</tr>
<tr>
<td>Alia</td>
<td>SE</td>
<td>79</td>
<td>20</td>
</tr>
</tbody>
</table>"""
df_table = pd.read_html(table)
display(df_table[0])
出力:
read_html()
メソッドを使用してファイルから HTML テーブルを読み取る
ファイル処理を通じて、Pandas データフレームのテキスト ファイルに格納された HTML テーブルを読み取ります。 まず、テーブルを含むテキスト ファイルを現在のディレクトリに置きます。
または、Jupyter ノートブックを使用している場合は、テキスト ファイルをホーム ディレクトリにアップロードする必要があります。 次に、テキスト ファイルを open()
で読み取り、ファイルを読み取るため、モードとして filename
と r
を渡します。
read()
メソッドを使用して、Pandas データフレームのファイル コンテンツを抽出します。
コード例:
# Python 3.x
import pandas as pd
table_path = "table.txt"
with open(table_path, "r") as f:
df_table = pd.read_html(f.read())
display(df_table[0])
出力:
I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.
LinkedIn