Pandas で html テーブルを読み取る方法 (例を含む)


pandas read_html()関数を使用して、HTML テーブルを pandas DataFrame に読み取ることができます。

この関数は次の基本構文を使用します。

 df = pd. read_html (' https://en.wikipedia.org/wiki/National_Basketball_Association ')

次の例は、この関数を使用して、 この Wikipedia ページから NBA チーム名の表を読み取る方法を示しています。

例: Pandas を使用して HTML テーブルを読み取る

read_html()関数を使用する前に、おそらく lxml をインストールする必要があります。

 pip install lxml

: Jupyter ノートブックを使用している場合は、このインストールを実行した後にカーネルを再起動する必要があります。

次に、 read_html()関数を使用して、 この Wikipedia ページの各 HTML テーブルを読み取ることができます。

 import pandas as pd
import numpy as np
import matplotlib. pyplot as plt
from unicodedata import normalize

#read all HTML tables from specific URL
tabs = pd. read_html (' https://en.wikipedia.org/wiki/National_Basketball_Association ')

#display total number of tables read
len (tabs)

44

このページには合計 44 の HTML テーブルが見つかったことがわかります。

関心のあるテーブルに「Division」という単語が含まれていることがわかっているので、 match引数を使用して、この単語を含む HTML テーブルのみを取得できます。

 #read HTML tables from specific URL with the word "Division" in them
tabs = pd. read_html (' https://en.wikipedia.org/wiki/National_Basketball_Association ',
                    match=' Division ')

#display total number of tables read
len (tabs)

1

次に、テーブルの列の名前をリストします

 #define table
df = tabs[0]

#list all column names of table
list (df)

[('Division', 'Eastern Conference'),
 ('Team', 'Eastern Conference'),
 ('Location', 'Eastern Conference'),
 ('Arena', 'Eastern Conference'),
 ('Capacity', 'Eastern Conference'),
 ('Coordinates', 'Eastern Conference'),
 ('Founded', 'Eastern Conference'),
 ('Joined', 'Eastern Conference'),
 ('Unnamed: 8_level_0', 'Eastern Conference')]

最初の 2 列のみに興味があるので、これらの列のみが含まれるように DataFrameをフィルターできます。

 #filter DataFrame to only contain first two columns
df_final = df. iloc [:, 0:2]

#rename columns
df_final. columns = [' Division ', ' Team ']

#view first few rows of final DataFrame
print ( df_final.head ())

   Division Team
0 Atlantic Boston Celtics
1 Atlantic Brooklyn Nets
2 Atlantic New York Knicks
3 Atlantic Philadelphia 76ers
4 Atlantic Toronto Raptors

最後のテーブルには、「部門」列と「チーム」列のみが含まれています。

追加リソース

次のチュートリアルでは、パンダで他のファイル タイプを読み取る方法を説明します。

Pandasでテキストファイルを読み取る方法
Pandas で Excel ファイルを読み取る方法
PandasでCSVファイルを読み取る方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です