ファンダメンタルズとテクニカルどっちを信じればいいんだと、とにかく悩むことが多いですよね。
今回は、Pythonでビットコインのデータを取得し、データフレームの中身を見て基本的な事項を確認してみようと思います。Kaggleなどのデータ分析コンペでも最初に行う操作ですのでぜひ覚えましょう。
テクニカル分析を機械にやってもらえば、人間より高速に完璧にやってくれるのではないかという淡い期待を持ってやっています。
今回はJupyter notebookを使っています。
ビットコインの価格データを取得
まずはyahoofinanceを使って、過去のビットコインのデータを取得します。この記事では使わないライブラリもインポートしていますが、後々使うことの多いライブラリです。
# 日付と時間を操作するためのライブラリ
import datetime
# データの可視化のためのライブラリ
import matplotlib.pyplot as plt
# 数値演算やデータ操作のためのライブラリ
import numpy as np
# 金融データを取得するためのライブラリ
import pandas_datareader.data
# 機械学習モデルを構築するためのライブラリ
import sklearn.linear_model
import sklearn.model_selection
# 金融データを取得するためのライブラリ
import yfinance
import pandas as pd
# yahooの仕様の変化によってyfinanceを入れないといけないみたい
yfinance.pdr_override()
# 株価をゲットする期間を指定する
start = datetime.date(2019, 1, 1)
end = datetime.date(2023, 12, 5)
# 株価を取得するAPIとして"yahoo"を指定していたが、要らなくなった
df_bit = pandas_datareader.data.DataReader('BTC-JPY', start, end)
df_bit
出力は下のような感じになるはずです。英語になっていますが、左から日付(インデックス)、始値、高値、安値、終値、調整後終値、出来高が入っています。
(調整後終値についてはyahooの公式ページをご覧ください。)
表を見るだけでは、値動きがわかりにくいのでグラフにします。
df_bit['Close'].plot()
データフレームの中身の確認
データフレームの中身を見て基本的な事項を確認してみようと思います。Kaggleなどのデータ分析コンペでも最初に行う操作ですのでぜひ覚えましょう。
型を確認
まずはデータフレームの中の各列の型を確認しておきます。「dtypes」を使って確認します。画像は載せていませんが、インデックスのデータの型を確認したい時は「df_bit.index.dtype」です。
# データフレーム内の各列のデータの型を確認
df_bit.dtypes
# インデックスのデータの型を確認
df_bit.index.dtype
欠損値がないか確認
欠損値がないか確認しておきます。今回は上のコードのままでデータを取得していれば、欠損値がないはずです。欠損地がある場合は「True」と出力されます。前処理が必要となりますが、今回はしません。
df_bit.isna().any()
基本統計量の確認
各列の基本統計量を「describe()」で確認することができます。確認できるのは以下になります。
- count : 要素の個数
- mean : 平均値
- std : 標準偏差
- min : 最小値
- 25% : 1/4分位数、3/4分位数
- 50% : 中央値
- 75% : 3/4分位数
- max : 最大値
df_bit.describe()
まとめ
今回はビットコインの価格を取得し、データの中身を確認する方法を紹介しました。
ビットコインの価格変動は、ランダムウォークですが、分析することによって未来の価格が分かるかもしれません。それが分かれば、儲けることができるかもしれません。夢かもしれません。
続きも書いていこうと思ってます。
コメント