커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
해외주식 불러와서 데이터 프레임 만들기
금융인을 위한 파이썬 업무자동화 v0
2주차
북마크
김*한
댓글
1
추천
0
조회수
10
조회수
10
답변 완료

* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.

* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.


직전에 질문한 내용과 같은 맥락에서 하는 질문입니다.해외 주식을 불러와서 데이터 프레임 만들기 코딩을 강사님을 따라서 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) 단축키로 코드를 한 번에 선택할 수 있어요!




취소
 공유
취소
댓글 0
댓글 알림
나의얼굴