PYthonのAnaconda環境で以下のコードを実行したところ、Pandasでの例外エラーが出ました。
pandasを入れなおしたりしてみたのですが、解決できませんでした。
解決方法をご存じでしたらご教授いただけると助かります。
よろしくお願いいたします。
pandasのver.
pandas 1.1.3
pandas-compat 0.1.1
実行したコード
python
1import requests 2import json 3from datetime import datetime as dt 4import time 5import pandas as pd 6import os 7 8base_url = 'https://api.bitflyer.jp/v1/board?product_code=' 9pair = 'FX_BTC_JPY' 10data = requests.get(base_url + pair, timeout=5) 11SLEEP_T = 1 # スリープ秒数 12DEPTH = 50# 取得する板の深さ 13 14def get_board(): # boardデータ取得関数 15 data = requests.get(base_url + pair, timeout=5) 16 board = json.loads(data.text) # JSONデータを辞書データへ変換 17 dict_data = {'time': dt.now()} # 現在時刻の取得 18 dict_data.update({'mid_price': board['mid_price']}) 19 dict_data.update({'ask_price_{}'.format(i): board['asks'][i]['price'] for i in range(DEPTH)}) 20 dict_data.update({'ask_size_{}'.format(i) : board['asks'][i]['size'] for i in range(DEPTH)}) 21 dict_data.update({'bid_price_{}'.format(i): board['bids'][i]['price'] for i in range(DEPTH)}) 22 dict_data.update({'bid_size_{}'.format(i) : board['bids'][i]['size'] for i in range(DEPTH)}) 23 return pd.Series(dict_data) # 辞書データをPandas Seriesへ変換 24 25def get_btc_board(): # 1秒待ってのループ処理 26 init_time = dt.now() # 現在時刻の取得 27 end_time = dt.now() # 現在時刻の取得 28 print('START /', init_time) 29 main_list = [] # Pandasデータフレームの元となるリストを初期化 30 while (end_time - init_time).seconds < 30: # データ保存の時間[s] # 1hで1つのdfを作成 31 try: 32 dict_data = get_board() # JSONデータをPandas Seriesへ変換 33 main_list.append(dict_data) # Pandas Seriesをリストへ追加 34 except Exception as e: 35 print('exception: ', e.args) 36 time.sleep(SLEEP_T) 37 end_time = dt.now() # 現在時刻の取得 38 df_data = pd.concat(main_list, axis=1).T # Pandas Seriesのリストを結合・転置し、キー名をデータフレームの列名とする 39 df_data.to_csv('./data/bitflyerfx_hourly_board_day_{}_init_{}_{}_end_{}_{}.csv'.format(init_time.day, init_time.hour, init_time.minute, end_time.hour, end_time.minute)) 40 print('END /', end_time) 41 42if __name__ == '__main__': 43 if not os.path.exists('./data'): 44 os.mkdir('./data') # dataディレクトリが無ければ作成する 45 while True: 46 try: 47 get_btc_board() 48 except Exception as e: 49 print('exception: ', e.args)
実行した際のメッセージ
START / 2020-10-18 12:44:38.378814
exception: ("get_objs_combined_axis() got an unexpected keyword argument 'copy'",)
あなたの回答
tips
プレビュー