はじめに
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データの取り込み方法を紹介しました。また、データフレームの整形と前処理方法についても説明しました。


![[python]CSVをPandasに出力(1列目、列指定、桁数)](https://machine-learning-skill-up.com/knowledge/wp-content/uploads/2023/11/1-288.jpg)


