【Python】1分足データを適当な期間で分けるプログラム
1分足データを適当な期間で分けるプログラムです。
hst(ヒストリカル)ファイルをダウンロードしてcsvファイルに変換したデータは1分足なので、かなりデータ容量が大きいです。
これをそのまま検証プログラムにかけると、計算に非常に時間がかかってしまい非常に効率がわるくなります。
そのため16年分のデータを3年ごとや5年ごと(分ける期間はご自身のお好みに合わせて下さい)に分けて取り扱ったり、1分足のデータを1時間足(60分足)や4時間足、日足などに変換して、検証が効率よくできるように工夫する必要があります。
import datetime
import numpy as np
import pandas as pd
import os
import pandas as pd
# CSVファイルをPandasデータフレームに読み込む
df = pd.read_csv('/Users/user/Documents/検証用ローソク足データ/USDJPY.csv')
# DateTime列をdatatime型に変換→インデックスに設定して、元の列は削除する
df = df.set_index(pd.to_datetime(df['DateTime'])).drop('DateTime', axis=1)
# 指定した期間のデータを抽出する(参考:指定方法のパターン)
df = df['2016-3-31 20:00' : '2016-06-30 00:50'] # 期間を日時で指定
#df = df['2019-08' : '2019-09'] # 期間を年月で指定
#df = df['2019-09-20' : '2019-09-30'] # 期間を日で指定
#df = df['2019'] # 年で指定
#df = df['2019-09'] # 年月で指定
#df = df['2019-09-30'] # 年月日で指定
#df = df[:100] # 先頭からの行数で指定
#df = df[100:200] # 期間を行数で指定
# 抽出結果の表示
print('行数:%d' % len(df)) # 行数
print(df.head(10)) # データの先頭10行を表示
print(df.tail(10)) # データの末尾頭10行を表示
# CSVファイルに保存
df.to_csv('/Users/user/Documents/検証用ローソク足データ/USDJPY2016.csv')
print("fin")
【参考文献:「モーリーのメモ/ FXのヒストリカルデータから指定した期間を抽出する:Python」様 URL:
https://mmorley.hatenablog.com/entry/fx_historicaldata02】
HSTファイルからCSVファイルに変換する際と同様、こちらのサイトの記事を参考にさせて頂きました。ソースコードもほとんどそのまま使わせて頂いております。感謝です。
この記事が気に入ったらサポートをしてみませんか?