Python

【コード解説】Pythonで株価データを日足から週足・月足に変換する!

2021年8月12日

【コード解説】Pythonで株価データを日足から週足・月足に変換する!

こんにちは。TATです。

今日のテーマは「Pythonで株価データを日足から週足・月足に変換する」です。

 

過去にPythonで株価データを扱う記事をいろいろとご紹介してきました。

おすすめ
【まとめ】Pythonで株価データを扱う
【まとめ】Pythonで株価データを扱う

続きを見る

 

今回は取得した日足データを週足や月足に変換します。

Pythonを使えばこういったデータの処理も簡単に実装することができます。

この方法を利用すれば、日足のデータだけを収集すれば週足や月足に自由に変換して扱うことができます。

 

【コード解説】Pythonで株価データを日足から週足・月足に変換する!

【コード解説】Pythonで株価データを日足から週足・月足に変換する!

(おさらい)株価データの取得

まずは解説に使用するための株価データを取得します。

過去記事でも解説済みなのでサクッといきます。

関連
【コード解説】Pythonで株価データを取得する!【3つの方法を解説】

続きを見る

関連
【Pythonコード解説】yahoo_finance_api2で日本株の株価データを取得する
【Pythonコード解説】yahoo_finance_api2で日本株の株価データを取得する

続きを見る

 

今回はyahoo_finance_api2を使ってトヨタ自動車(証券コード:7203)の株価データを取得しました。

過去2年分のデータを取得しています。

 

取得したデータがこちらです。

 

週足・月足に変換する

データの取得ができたところで、週足・月足に変換していきます。

 

pandasのresampleを活用する

週足・月足への変換にはpandasのresampleを使うと大変便利です。

resampleを使うと簡単に週足や月足への変換が完了します。

名前の通り、データのリサンプリングを行ってくれます。

DataframeのIndexを日付データにしておけば、週足や月足の変換も簡単に行うことができます。

 

週足に変換してみる

早速変換していきます。

resampleの使い方は、期間を選択して、さらにカラムごとの計算手法を指定します。

週足に変換する場合は、始値は週初めの始値、高値は1週間の高値、安値は1週間の安値、終値は週最後の終値、出来高は合計値になります。

 

WはWeek(週)を意味します。

resampleを使うには、indexが日付データになっている必要があるので、set_indexでdatetimeカラムをindexに指定しています。

 

完成したデータがこちらです

週ごとに変換されていることが確認できますね。

 

loffsetを指定して日付を調整する

先ほどのデータをみると、各日付は該当する週の日曜日になっています。

週足データの日付の表示はサイトによって異なります。

例えば、yahooファイナンスだと、週の月曜日(祝日なら翌日)で表示されます。

株探だと金曜日(祝日なら前日)で表示されます。

 

どちらにするかは好みの問題です。

僕的には株探をよく使っているので、金曜日表示に慣れています。

ゆえにここでは日付の表示が金曜日になるように調整していこうと思います。

 

これを行うにはresampleで、loffsetを指定します。

ここでは日曜日を金曜日にずらすために日付を2日間マイナスします。

 

pandasのoffsetsを使うと任意の日付を指定することができます。

結果がこちらです。

 

日曜から2日引いているので金曜日になっています。

月曜日で表示したい場合は6日引けばOKです。

 

月足に変換する

次に日足データを月足に変換してみます。

この場合はresampleの引数をWからMに変更すればOKです。

MはMonth(月)の頭文字です。

 

計算結果をdf_monthに格納しました。

値を確認します。

 

きちんと月ごとに集計できていることが確認できます。

これで日足データを週足・月足データに変換することができました。

 

注意点:最初のデータはずれる場合があります

最後に注意点です。

日足データを週足・月足データに変換する際には、用意するデータによっては一部データの値がずれます。

特に最初のデータがずれる場合が多いです。

本記事で使用したデータは2019年7月29日〜のデータになってるので、これを月足にすると2019年7月分のデータは3日分しかありません。

 

また、記事を書いている2021年7月時点のデータも7月がまだ終わっていないので、2020年7月のデータは途中までのデータになります。

週足に変換する場合には、収集する日足データを月曜開始になるように調整する必要があります。

月足データに収集する場合には月初めからのデータを用意する必要があります。

ここだけは要注意なのでご紹介しておきました!

 

収集するデータが1種類あれば十分!

本記事でご紹介した変換方法と使えば、日足データさえあれば週足データと月足データは簡単に変換できることがわかりました。

よって、データ収集の際には、基本的には1種類のデータだけあればOKです。

具体的には必要なデータのうち最も細かいデータが1つだけあれば、それより粗いデータは自由に変換することができます。

5分足のデータがあれば、そこから30分足や1時間足などのデータも作れます。

逆に日足データから1時間足などのデータに変換することはできないので、必要なデータのうち、最も粒度の細かいデータを1つだけ収集しておけばOKということになります。

これだけで収集するデータはかなり減ります。

 

僕の場合は、日足データのみを収集して、週足・月足に変換するようにしています。(月足はほぼ使いませんがw)

 

まとめ

いかがでしたでしょうか。

ここでは「Pythonで株価データを日足から週足・月足に変換する」というテーマで、resampleを使って株価データを変換する方法を解説しました。

Pythonと使うと、複雑な処理でも短いコードで実装できるのでとても便利です。

 

本記事のほかにも、Pythonで株価データを扱う記事はいろいろまとめているので合わせてご覧ください。

おすすめ
【まとめ】Pythonで株価データを扱う
【まとめ】Pythonで株価データを扱う

続きを見る

 

ここまで読んでくださってありがとうございました。

データ販売を始めました


オニールとミネルヴィニの投資手法を日本株に適用するために必要なデータの販売を始めました。

あらゆるデータを集約して、誰でも簡単にスクリーニングできるようにCSV形式でデータを提供します。

オニールとミネルヴィニの投資手法を日本株に適用するために必要なデータを販売します!

続きを見る




Pythonの独学ならUdemyがオススメ!


Udemyなら、セール中だと90%オフとかで買えるのでコスパ最強です。

僕はUdemyでPython独学に成功しました。

関連
【目的別】Pythonが学べるUdemyのおすすめコースを紹介します【随時更新】

続きを見る



関連
プログラミングの独学にUdemyをおすすめする理由!【僕はUdemyでPythonを独学しました!】

続きを見る



Udemyを詳しく見る!



プログラミングスクールもオススメ!



プログラミングスクールもオススメの選択肢です。

初心者をしっかりサポートしてくれるシステムが整っているので、挫折する可能性が一気に下がります。

効率よく最速で学ぶならプログラミングスクールが最適です。

関連
【まとめ】Pythonが学べるおすすめプログラミングスクール

続きを見る



関連
プログラミング学習は独学とプログラミングスクールどちらにすべきか?【結論、全部試すべし!】

続きを見る



関連
高額なプログラミングスクールを利用する価値はあるのか?【結論、人それぞれですw】

続きを見る




TechAcademy (テックアカデミー)


オンラインに特化したプログラミングスクールで、プログラミングの他に動画編集などの豊富なコースが用意されています。







TechAcademyを詳しく見る!



TECH::CAMP (テックキャンプ)


いつでも講師に質問できるチャットシステムが最強です!







TECH::CAMPを詳しく見る!



 

CodeCamp (コードキャンプ)


講師とのマンツーマンレッスンで挫折しない!







CodeCampを詳しく見る!


-Python
-, , ,

© 2021 気ままなブログ