
* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.
* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.
직전에 질문한 내용과 같은 맥락에서 하는 질문입니다.해외 주식을 불러와서 데이터 프레임 만들기 코딩을 강사님을 따라서 Pycharm에서 하고 있는데 아래와 같이 에러가 발생합니다
C:\Users\kjh29\PycharmProjects\pythonProject2\venv\Scripts\python.exe "C:/Users/kjh29/PycharmProjects/pythonProject2/venv/SPARTA/Pycharm 2주차.py"
Hello Dave
Traceback (most recent call last):
File "C:\Users\kjh29\PycharmProjects\pythonProject2\venv\SPARTA\Pycharm 2주차.py", line 81, in <module>
row = add_company('TSLA')
File "C:\Users\kjh29\PycharmProjects\pythonProject2\venv\SPARTA\Pycharm 2주차.py", line 43, in add_company
name=company.info['shortName']
File "C:\Users\kjh29\PycharmProjects\pythonProject2\venv\lib\site-packages\yfinance\ticker.py", line 138, in info
return self.get_info()
File "C:\Users\kjh29\PycharmProjects\pythonProject2\venv\lib\site-packages\yfinance\base.py", line 1475, in get_info
data = self._quote.info
File "C:\Users\kjh29\PycharmProjects\pythonProject2\venv\lib\site-packages\yfinance\scrapers\quote.py", line 95, in info
self._scrape(self.proxy)
File "C:\Users\kjh29\PycharmProjects\pythonProject2\venv\lib\site-packages\yfinance\scrapers\quote.py", line 124, in _scrape
json_data = self._data.get_json_data_stores(proxy=proxy)
File "C:\Users\kjh29\PycharmProjects\pythonProject2\venv\lib\site-packages\yfinance\data.py", line 41, in wrapped
return func(*args, **kwargs)
File "C:\Users\kjh29\PycharmProjects\pythonProject2\venv\lib\site-packages\yfinance\data.py", line 311, in get_json_data_stores
stores = decrypt_cryptojs_aes_stores(data, keys)
File "C:\Users\kjh29\PycharmProjects\pythonProject2\venv\lib\site-packages\yfinance\data.py", line 162, in decrypt_cryptojs_aes_stores
raise Exception("yfinance failed to decrypt Yahoo data response")
Exception: yfinance failed to decrypt Yahoo data response
Process finished with exit code 보고 계신 화면 전체를 캡처해 주시면, 튜터님들이 빠르게 상황을 이해할 수 있어요.
작성한 코드 및 에러 메세지
print("Hello Dave")
import pandas as pd
import numpy as np
import yfinance as yf
# 전체 행열을 다 보이게 하기
# print("pandas version: ", pd.__version__)
# pd.set_option('display.max_row', 500)
# pd.set_option('display.max_columns', 100)
# DataFrame 작성 연습
# data={
# 'name':['철수','영희','동희','영수'],
# 'age' : [15,12,20,35]}
#
# df = pd.DataFrame(data)
# doc ={'name':'세종','age':23}
# df=df.append(doc,ignore_index=True)
# df['city']=['서울','부산','서울','부산','부산']
# df['is_adult'] = np.where(df['age']<20,'청소년','성인')
# # print(df['age'].describe())
# print(df)
# df = pd.read_excel('종목데이터.xlsx')
# pd.options.display.float_format = '{:.2f}'.format
# cond = df['change_rate'] > 0
# df = df[cond] # 위에서 정의한 change_rate >0 조건을 고정
# cond = df['per'] > 0
# df = df[cond]
# df['close'] = df['per'] * df['eps']
# df['earning']=df['marketcap'] / df['per']
# del df['date']
#
# cond= (df['pbr'] < 1) & (df['marketcap']>1000000000000) & (df['per']<20)
# df = df[cond]
# df.sort_values(by='marketcap',ascending=True)
# # df.describe()
# print(df)
def add_company(code):
company = yf.Ticker('TSLA')
name=company.info['shortName']
industry = company.info['industry']
marketcap = company.info['marketCap']
summary = company.info['longBusinessSummary']
currentprice = company.info['currnetPrice']
targetprice = company.info['targetMeanPrice']
per = company.info['trailingPE']
eps = company.info['trailingEps']
pbr = company.info['priceToBook']
rev2021 = company.earnings.iloc[-1,0]
rev2020 = company.earnings.iloc[-2,0]
rev2019 = company.earnings.iloc[-3,0]
ear2021 = company.earnings.iloc[-1,1]
ear2021 = company.earnings.iloc[-2,1]
ear2021 = company.earnings.iloc[-3,1]
doc = {
'name':name,
'industry':industry,
'marketcap':marketcap,
'summary':summary,
'currnetprice':currentprice,
'targetprice':targetprice,
'per':per,
'eps':eps,
'pbr':pbr,
'rev2021': rev2021,
'rev2020': rev2020,
'ear2019': rev2019,
'ear2021': ear2021,
'ear2020': ear2020,
'ear2020': ear2019
}
return doc
df = pd.DataFrame()
row = add_company('TSLA')
df.append(row,ignore_index = True)
pd.options.display.float_format = '{:.2f}'.format
오류 발생 시, 작성한 코드 전체와 에러 메시지를 첨부해 주세요.
Tip 1) </> 아이콘을 눌러 코드박스를 만들어 보세요.
Tip 2) Ctrl+A(맥의 경우 Command+A) 단축키로 코드를 한 번에 선택할 수 있어요!
