前回、TwelvedataのAPIを使って為替データの取得方法を紹介しましたが、無料プランでは取得件数に制限があります。そのため、今回は複数回のリクエストを行ってデータを取得し、それらを結合する方法をご紹介します。
環境
- Python 3.10.12
事前準備
- TwelvedataでAPIキーを取得しておいてください。
- TwelvedataのPythonライブラリをインストールします。
pip install twelvedata
これで事前準備は完了です。
データの取得方法
以下は、データを取得して結合するプログラムのコードです。基本的な手順は前回の記事と同じなので、詳しい解説は省略します。
from twelvedata import TDClient
import pandas as pd
td = TDClient(apikey="YOUR_API_KEY") # ここにAPI_KEYを入れてください
symbol = "USD/JPY"
interval = "1day"
outputsize = 500 # 一度のリクエストで取得するデータの最大件数
# 最初のデータセットを取得
ts = td.time_series(
symbol=symbol,
interval=interval,
outputsize=outputsize
).as_pandas()
all_data = ts
# 繰り返しデータを取得して結合する
while True:
try:
# 最も古いデータの日付を取得
last_date = all_data.index.min()
# 次のデータセットを取得
ts = td.time_series(
symbol=symbol,
interval=interval,
outputsize=outputsize,
end_date=last_date # 取得するデータの終了日を指定
).as_pandas()
# 新しいデータがない場合、ループを終了
if ts.empty:
break
# データを結合
all_data = pd.concat([ts, all_data])
# APIの制限やエラーで問題が発生した場合、ループを終了
except:
break
# データをCSVファイルとして保存
all_data.to_csv("usd_jpy_full.csv")
上記のコードを実行すると、usd_jpy_full.csv
というファイルにデータが保存されます。
コメント