HiÐΞWeb3

ICP-USD / ICP-JPY データ取得の備忘録・改 (グーグルコラボ)

SHOGAKU
2ヶ月前
以前今回ステップ1: 必要なライブラリのインストールとインポートステップ2: ICP-USDの価格データの取得ステップ3: 為替レートデータの取得ステップ4: データの統合とICP-JPYの計算ステップ5: 日付の連続性を確保し、データの補完ステップ6: 結果の保存とダウンロード完全なコード:補足:グーグルコラボの使い方Google Colabの使い方基本的な使い方

以前行ったものをシンプルにした。

以前

グーグルコラボで実行した例。


今回

"ICP-USD価格と為替レートを利用してICP-JPYを計算するPythonチュートリアル"

はじめに: 暗号通貨市場は、その急速な変動とグローバルな性質から、多くの投資家や研究者にとって魅力的な研究対象となっています。このブログでは、特定の暗号通貨であるInternet Computer (ICP)のUSD価格データと、USD-JPYおよびEUR-USDの為替レートデータを用いて、ICPのJPY価格を計算する方法について、Pythonを使って詳しく解説します。

ステップ1: 必要なライブラリのインストールとインポート

まず、このチュートリアルで使用するPythonライブラリをインストールし、インポートします。主にhistoric_cryptoライブラリを使ってICP-USDの価格データを取得し、pandas_datareaderライブラリで為替レートデータを取得します。

!pip install historic_crypto

from Historic_Crypto import HistoricalData
import pandas as pd
from datetime import datetime
import pandas_datareader.data as web
from google.colab import files

ステップ2: ICP-USDの価格データの取得

HistoricalDataクラスを使用して、指定された期間のICP-USDの価格データを取得します。この例では、2020年5月10日から現在までのデータを取得しています。

start_date = '2020-05-10-00-00'
end_date = datetime.now().strftime('%Y-%m-%d-%H-%M')
icp_data = HistoricalData('ICP-USD', 86400, start_date, end_date).retrieve_data()

ステップ3: 為替レートデータの取得

pandas_datareaderライブラリを使って、USDJPYとEURUSDの為替レートデータを取得します。

df_rates = web.DataReader(['DEXJPUS', 'DEXUSEU'], 'fred', start='2020-05-10')

ステップ4: データの統合とICP-JPYの計算

取得したICP-USD価格データと為替レートデータを統合し、ICPのJPY価格を計算します。

df = pd.DataFrame(icp_data)
df.reset_index(inplace=True)
df.rename(columns={'index': 'time', 'close': 'close(ICP-USD)'}, inplace=True)
df['time'] = pd.to_datetime(df['time']).dt.strftime('%Y-%m-%d')

df_merged = pd.merge(df, df_rates, how='left', on='time')
df_merged['ICP-JPY'] = df_merged['close(ICP-USD)'] * df_merged['DEXJPUS']

ステップ5: 日付の連続性を確保し、データの補完

データが存在する最終日までの日付の連続性を保証し、欠損データを前方で補完します。

last_date = min(df_merged['time'].max(), df_rates['time'].max())
date_range = pd.date_range(start=df_merged['time'].min(), end=last_date)
df_merged.set_index('time', inplace=True)
df_merged.index = pd.to_datetime(df_merged.index)
df_final = df_merged.reindex(date_range).rename_axis('time').reset_index()
df_final['time'] = df_final['time'].dt.strftime('%Y-%m-%d')
df_final.fillna(method='ffill', inplace=True)

ステップ6: 結果の保存とダウンロード

最終的なデータフレームをCSVファイルとして保存し、ダウンロードします。

filename = 'ICP_data_' + datetime.now().strftime('%Y-%m-%d

') + '.csv'
df_final.to_csv(filename, index=False)
files.download(filename)

完全なコード:

完全なコードを示します。

# 必要なライブラリのインストール
!pip install historic_crypto

# 必要なライブラリのインポート
from Historic_Crypto import HistoricalData
import pandas as pd
from datetime import datetime
import pandas_datareader.data as web
from google.colab import files

# ICP-USDの過去データ取得
start_date = '2020-05-10-00-00'  # ICPの取引開始日
end_date = datetime.now().strftime('%Y-%m-%d-%H-%M')  # 現在の日付と時刻
icp_data = HistoricalData('ICP-USD', 86400, start_date, end_date).retrieve_data()

# ICP-USDデータフレームの作成
df_icp = pd.DataFrame(icp_data)
df_icp.reset_index(inplace=True)
df_icp.rename(columns={'index': 'time', 'close': 'close(ICP-USD)'}, inplace=True)
df_icp['time'] = pd.to_datetime(df_icp['time']).dt.strftime('%Y-%m-%d')

# 為替レートデータの取得
df_rates = web.DataReader(['DEXJPUS', 'DEXUSEU'], 'fred', start='2020-05-10')
df_rates.reset_index(inplace=True)
df_rates.rename(columns={'DATE': 'time'}, inplace=True)
df_rates['time'] = pd.to_datetime(df_rates['time']).dt.strftime('%Y-%m-%d')

# ICP-USDと為替レートの統合
df_merged = pd.merge(df_icp, df_rates, how='left', on='time')

# ICP-JPYの計算
df_merged['ICP-JPY'] = df_merged['close(ICP-USD)'] * df_merged['DEXJPUS']

# データが存在する最後の日までの日付範囲を作成
last_date = min(df_merged['time'].max(), df_rates['time'].max())
date_range = pd.date_range(start=df_merged['time'].min(), end=last_date)
df_merged.set_index('time', inplace=True)
df_merged.index = pd.to_datetime(df_merged.index)

# 日付の連続性を保証し、データが存在しない日は含めない
df_final = df_merged.reindex(date_range).rename_axis('time').reset_index()
df_final['time'] = df_final['time'].dt.strftime('%Y-%m-%d')

# 欠損データを前方で埋める
df_final.fillna(method='ffill', inplace=True)

# 指定されたカラムだけを選択してCSVファイルとして保存し、ダウンロード
filename = 'ICP_data_' + datetime.now().strftime('%Y-%m-%d') + '.csv'
df_final[['time', 'close(ICP-USD)', 'ICP-JPY']].to_csv(filename, index=False)
files.download(filename)

# 結果の表示
print(df_final[['time', 'close(ICP-USD)', 'ICP-JPY']].head(10))
print(df_final[['time', 'close(ICP-USD)', 'ICP-JPY']].tail(10))


補足:グーグルコラボの使い方

グーグルコラボ Google Colabの使い方について説明

Google Colabの使い方

Google Colaboratory、通称Google Colabは、ブラウザ上でPythonを書いて実行できる無料のJupyterノートブック環境です。Googleドライブと密接に統合されており、GPUやTPUの使用も無料で可能です。特にデータサイエンスや機械学習のプロジェクトに非常に便利です。

基本的な使い方

  1. Google Colabにアクセス: Googleアカウントにログインした状態で、Google Colabにアクセスします。
  2. 新しいノートブックを作成: 「新しいノートブック」をクリックして新しいノートブックを開始します。または、Googleドライブ内で新しいノートブックを作成することもできます。
  3. コードの記述と実行: セルにPythonコードを記述し、セルを実行して結果を確認します。セルはコードセルとテキストセルがあり、テキストセルではMarkdown形式で文書を記述できます。
  4. ライブラリのインストール: 必要に応じて、!pip install!apt-get installを使用してライブラリをインストールします。
  5. ファイルの保存と共有: 編集したノートブックは自動的にGoogleドライブに保存されます。右上の「共有」ボタンから他のユーザーとノートブックを共有することも可能です。

コメント
いいね
投げ銭
最新順
人気順
SHOGAKU
2ヶ月前
コメント
いいね
投げ銭
最新順
人気順
トピック
アプリ

Astar Network

DFINITY / ICP

NFT

DAO

DeFi

L2

メタバース

BCG

仮想通貨 / クリプト

ブロックチェーン別

プロジェクト

目次
Tweet
ログイン