
* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.
* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.
VS Code로 실습중인데 아래와 같이 오류가 발생합니다.
작성한 코드 및 에러 메세지
breakthrough2.py
def get_return_mf(code):
from pandas_datareader import data as pdr
import yfinance as yf
yf.pdr_override()
import numpy as np
import pandas as pd
import FinanceDataReader as fdr
df = fdr.DataReader(code, '2018')
df = df.reset_index()
df = df[['Date', 'Open']]
df['day'] = pd.to_datetime(df['Date']).dt.day_name()
cond = (df['day']=='Monday') | (df['day'] == 'Friday')
df = df[cond]
if df.iloc[0,2] == 'Friday':
df = df.drop(index = df.index[0])
if df.iloc[-1,2] == 'Monday':
df = df.drop(index = df.index[-1])
cond = (df['day']=='Monday') & (df['day'].shift(-1)=='Monday')
df = df.drop(index=df[cond].index)
cond = (df['day']=='Friday') & (df['day'].shift(1)=='Friday')
df = df.drop(index=df[cond].index)
df['Open_friday'] = df['Open'].shift(-1)
df = df[df['day']=='Monday']
df = df[['Open','Open_friday']]
df.columns = ['buy_at', 'sell_at']
df['return'] = df['sell_at'] / df['buy_at']
cond = (df['sell_at'] != 0) & (df['buy_at'] != 0)
df = df[cond]
return df[['return']].cumprod().iloc[-1,-1]-1
오류 발생 시, 작성한 코드 전체와 에러 메시지를 첨부해 주세요.
Tip 1) </> 아이콘을 눌러 코드박스를 만들어 보세요.
get_return_mf.py
import breakthrough2 as br
import numpy as np
import pandas as pd
import dart_fss as dart_fss
api_key = 'a9ac5badf2875767f55af59744ffac5266f2020b'
dart_fss.set_api_key(api_key=api_key)
all = dart_fss.api.filings.get_corp_code()
df = pd.DataFrame(all)
df_listed = df[df['stock_code'].notnull()]
df = pd.DataFrame()
for row in df_listed.sample(10)[['stock_code','corp_name']].itertuples():
try:
doc = {
'name' : row[2],
'return' : br.get_return_mf(row[1])
}
df = df.append(doc, ignore_index = True)
except:
print(f'error - {row[2]}')
print(df.sort_values(by='return', ascending=False))
의 경우 Command+A) 단축키로 코드를 한 번에 선택할 수 있어요!
(base) admin@toto stock % /usr/local/bin/python3 /Users/admin/Documents/sparta-study/stock/get_return_mf.py
error - 태광
error - 에스엠
error - 디아이디
error - 아모레퍼시픽
error - 엠로
error - 피엠디아카데미
"037120" invalid symbol or has no data
error - 한신코퍼레이션
error - 비보존 제약
error - 유일로보틱스
error - 리드코프
Traceback (most recent call last):
File "/Users/admin/Documents/sparta-study/stock/get_return_mf.py", line 26, in <module>
print(df.sort_values(by='return', ascending=False))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/pandas/core/frame.py", line 6768, in sort_values
k = self._get_label_or_level_values(by, axis=axis)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/pandas/core/generic.py", line 1778, in _get_label_or_level_values
raise KeyError(key)
KeyError: 'return'
(base) admin@toto stock %
