【環境】
・Python、MacbookPro,Jupyternotebook
【COde】
df_NYSE = pd.DataFrame() df_NYSE = pd.DataFrame(columns=[ 'company','2020-07-10','2020-07-13']) #あとで、データを代入するようにindexに企業名を指定 companies_TEST=["TXG","YI","PIH","PIHPP","TURN","JFKKR"] df_NYSE.company = companies_TEST df_NYSE.company = companies_TEST df_NYSE.set_index("company", inplace=True) start1 = '2020-07-11' end2= '2020-07-13' for i in companies_TEST: print(i + " done!") df_NYSE.at[str(i),"2020-07-10"] =data.DataReader(str(i), 'yahoo', start1, start1).Close.sum() df_NYSE.at[str(i),"2020-07-13"] =data.DataReader(str(i), 'yahoo', end2, end2).Close.sum() print("ALL done!") #数値があるか確認 start1 = '2020-07-11' end2= '2020-07-13' data.DataReader('JFKKR', 'yahoo', start1, end2).Close
【エラーメッセージ】
KeyError: 'Date'
途中でエラーになってて確認したところ、JFKKRでエラーでした。
個別に確認したところ、7月10日のデータがないので、エラーになっております。
【したいこと】
下記のように一個一個、7月11日と13日の数字を入れていきたい。
11日の数字がない場合は0を記載するようにしたい。
company | 2020-07-11 | 2020-07-13 |
---|---|---|
TXG | xx | xx |
YI | xx | xx |
start1 = '2020-07-11' end2= '2020-07-13' def get_val(data, company, date): try: return data.DataReader(company, 'yahoo', date,date).Close.sum() except KeyError: pass return 0 for i in companies_TEST: print(i + " done!") df_NYSE.at[str(i),"2020-07-10"] =get_val(str(i), 'yahoo', start1,start1).Close.sum() df_NYSE.at[str(i),"2020-07-13"] =get_val(str(i), 'yahoo', end2,end2).Close.sum() print("ALL done!")
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/14 03:08
2020/07/14 04:17
2020/07/14 04:40
2020/07/14 04:44
2020/07/14 05:25