はじめに
Web上には多くのデータが存在し、それを分析することは非常に重要です。requestsとpandasを組み合わせることで、Webデータを簡単かつ効率的にデータフレームに取り込むことができます。本記事では、requestsとpandasを使ったWebデータの取り込み方法を紹介します。
requestsとpandasの基本的な連携方法
requestsはPythonのライブラリの一つで、HTTPリクエストを簡単に送信することができます。pandasはPythonのライブラリの一つで、データの読み書きやデータ加工を簡単に行うことができます。requestsとpandasを組み合わせることで、Webデータをデータフレームに簡単に取り込むことができます。
まずは、requestsとpandasの基本的な連携方法を紹介します。
import io import pandas as pd import requests url = "https://stockdatacenter.com/stockdata/companylist.csv" response = requests.get(url) df = pd.read_csv(io.BytesIO(response.content)) print(df.head())
上記のコードでは、requestsを使ってWebからデータを取得し、pandasを使ってデータをデータフレームに変換しています。
まず、requestsでWeb上のCSVファイルを取得しています。requests.get()関数を使用することで、HTTP GETリクエストを送信して、Web上のファイルを取得することができます。取得したデータは、response.contentに格納されます。
次に、pandasを使用して、CSVデータをデータフレームに変換しています。pd.read_csv()関数を使用することで、CSVデータをデータフレームに変換することができます。
データフレームを表示するには、print()関数を使用します。上記のコードでは、データフレームの先頭5行を表示しています。
WebページのHTMLテーブルデータをデータフレームに変換
Webページ上のHTMLテーブルデータを取得し、pandasでデータフレームに変換することもできます。以下の例では、Pandas公式ドキュメントのページからテーブルデータを取得し、pandasでデータフレームに変換しています。
import requests import pandas as pd from bs4 import BeautifulSoup url = "https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html" response = requests.get(url) soup = BeautifulSoup(response.content, "html.parser") table = soup.find_all("table")[0] df = pd.read_html(str(table))[0] print(df)
上記のコードでは、requestsを使用してPandas公式ドキュメントのページからHTMLデータを取得しています。取得したHTMLデータは、BeautifulSoupで解析され、HTMLテーブルデータが抽出されます。pd.read_html()関数を使用して、HTMLテーブルデータをデータフレームに変換します。データフレームを表示するには、print()関数を使用します。
データフレームの整形と前処理
データフレームに取り込んだデータを整形し、前処理することで、分析の効率を高めることができます。以下の例では、取り込んだPandas公式ドキュメントのページからテーブルデータの列名を変更しています。
import requests import pandas as pd from bs4 import BeautifulSoup url = "https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html" response = requests.get(url) soup = BeautifulSoup(response.content, "html.parser") table = soup.find_all("table")[0] df = pd.read_html(str(table))[0] df.columns = ['No', 'explanation'] print(df)
上記のコードでは、pandasのスライス機能を使用して、データフレームから必要な列を選択しています。また、列名を変更して、より明確な名前に変更しています。
まとめ
requestsとpandasを組み合わせることで、Webデータを簡単かつ効率的にデータフレームに取り込むことができます。本記事では、requestsとpandasを使ったWebデータの取り込み方法を紹介しました。また、データフレームの整形と前処理方法についても説明しました。