【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ファイルに変換する際と同様、こちらのサイトの記事を参考にさせて頂きました。ソースコードもほとんどそのまま使わせて頂いております。感謝です。

この記事が気に入ったらサポートをしてみませんか?