私はrequests.get()
のYQL
を利用するyahooの2つのURLをjson
オブジェクトに返す必要があります。私はjson
のオブジェクトを私がlist()
に格納して戻ってきます。それから私はデータを解析して、パンダのデータフレームを作成するためのダイスを作成するためにループしています。 1つのリストだけがデータフレームに追加されることになりました。最後の繰り返しのように、2番目のリストは最初のリストを上書きします。この時点で、私はどのリストを反復するのかをリストの両方の要素append()
に理解できません。ここに私のコードは、私がデータフレームに全体list()
を追加できるようにする必要があります...複数のリストをデータフレームのpythonに追加するループ
import requests
import pandas as pd
urls = ['https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.historicaldata%20where%20symbol%20in%20(%22DIA%22%2C%22SPY%22%2C%22IWN%22)%20and%20startDate%20%3D%20%222015-01-01%22%20and%20endDate%20%3D%20%222015-10-31%22&format=json&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=',
'https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.historicaldata%20where%20symbol%20in%20(%22DIA%22%2C%22SPY%22%2C%22IWN%22)%20and%20startDate%20%3D%20%222015-11-01%22%20and%20endDate%20%3D%20%222016-08-31%22&format=json&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=']
for url in urls:
data = requests.get(url)
data_json = data.json()
quote_list = []
for quote in data_json['query']['results']['quote']:
quote_dic = {'symbol': quote['Symbol'],
'date': quote['Date'],
'volume': quote['Volume'],
'low': quote['Low'],
'high': quote['High'],
'open': quote['Open'],
'close': quote['Close'],
'adj_close': quote['Adj_Close']}
quote_list.append(quote_dic)
quote_df = pd.DataFrame(quote_list)
quote_df.to_csv('stocks.csv')
です。このコードの修正点は?
を持っているのはなぜリストにJSONを保存しますか? jsonは本質的には本質的に辞書であり、解析や翻訳なしで辞書にロードすることができます。 – zenlc2000
データフレームに 'json'を直接追加できますか? – Gilbert
しかし、私はパンダのデータフレームに慣れていませんが、http://stackoverflow.com/questions/31695108/how-to-append-a-dictionary-to-a-pandas-dataframeによれば、それはかなり簡単に見えます。 – zenlc2000