チャネルブレイクアウトbotコード(by スナフキン氏)読解メモ13
の続きです。
題材コードは https://sshuhei.com/entry/channelbreakout/ です。
fromListToDFメソッドの続きです。
def fromListToDF(self, candleStick):
"""
Listのローソク足をpandasデータフレームへ.
"""
date = [price[0] for price in candleStick]
priceOpen = [int(price[1]) for price in candleStick]
priceHigh = [int(price[2]) for price in candleStick]
priceLow = [int(price[3]) for price in candleStick]
priceClose = [int(price[4]) for price in candleStick]
date_datetime = map(datetime.datetime.fromtimestamp, date)
dti = pd.DatetimeIndex(date_datetime)
df_candleStick = pd.DataFrame(
{"open": priceOpen, "high": priceHigh, "low": priceLow,
"close": priceClose},
index=dti)
return df_candleStick
date_datetime = map(datetime.datetime.fromtimestamp, date)
`map` でdate配列の値に順次 `datetime.datetime.fromtimestamp` メソッドを適用します。
mapは高階関数と呼ばれます。
>>> a = [1,2,3,4,5]
>>> def hoge(x):
... return x + 1
例えば配列aと関数hogeがあるとして、
>>> b = map(hoge, a)
>>> print(list(b))
[2, 3, 4, 5, 6]
`map(hoge, a)` を実行すると、aのそれぞれの要素に1加算されたbが出力されます。
参考: https://www.sejuku.net/blog/24759
`datetime.datetime.fromtimestamp` メソッドは、unixtimestampをdatetime型に変換します。
>>> datetime.datetime.fromtimestamp(1534466705)
datetime.datetime(2018, 8, 17, 9, 45, 5)
例えば `1534466705` をfromtimestampすると `datetime.datetime(2018, 8, 17, 9, 45, 5)` になります。
括弧内は前から順番に、年・月・日・時間・分・秒です。
dti = pd.DatetimeIndex(date_datetime)
date_datetime配列を、pandasで利用しやすいDatetimeIndexに変換します。
参考: http://d.hatena.ne.jp/graySpace/20161216/1481864562
15分経ったので今日はここまで。
↓次
この記事が気に入ったらサポートをしてみませんか?