커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
수익률 구하기
금융인을 위한 파이썬 업무자동화 v0
4주차
북마크
김*한
댓글
1
추천
0
조회수
11
조회수
11
답변 완료

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

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


수익률 구하기 에러 발생



보고 C:\Users\kjh29\PycharmProjects\pythonProject2\venv\Scripts\python.exe "C:/Users/kjh29/PycharmProjects/pythonProject2/venv/SPARTA/Pycharm 4주차.py"

Traceback (most recent call last):

 File "C:\Users\kjh29\PycharmProjects\pythonProject2\venv\SPARTA\Pycharm 4주차.py", line 16, in <module>

  df=df[['close']]

 File "C:\Users\kjh29\PycharmProjects\pythonProject2\venv\lib\site-packages\pandas\core\frame.py", line 3811, in __getitem__

  indexer = self.columns._get_indexer_strict(key, "columns")[1]

 File "C:\Users\kjh29\PycharmProjects\pythonProject2\venv\lib\site-packages\pandas\core\indexes\base.py", line 6113, in _get_indexer_strict

  self._raise_if_missing(keyarr, indexer, axis_name)

 File "C:\Users\kjh29\PycharmProjects\pythonProject2\venv\lib\site-packages\pandas\core\indexes\base.py", line 6173, in _raise_if_missing

  raise KeyError(f"None of [{key}] are in the [{axis_name}]")

KeyError: "None of [Index(['close'], dtype='object')] are in the [columns]"


Process finished with exit code 1계신 화면 전체를 캡처해 주시면, 튜터님들이 빠르게 상황을 이해할 수 있어요.




작성한 코드 및 에러 메세지

import yfinance as yf
yf.pdr_override()

import numpy as np
import pandas as pd

import FinanceDataReader as fdr

df = fdr.DataReader('005930','2018')

# print(df.plot(y=['close']),figsize=[15,8],grid=True) #간단한 그래프 그리기
df=df[['close']]
df['ma']=df.rolling(3).mean().shift(1)
df['action']=np.where(df['close']>df['ma'],'buy','sell')

cond1 = (df['action']=='buy') & (df['action'].shift(1)=='sell')
cond2 = (df['action']=='sell') & (df['action'].shift(1)=='buy')
# df['real_buy'] = np.where(cond.'buy','')

df_buy =df[cond1].reset_index()
df_buy.columns = ['날짜','종가(buy)', '이평값','액션']

df_sell =df[cond2].reset_index()
df_buy.columns = ['날짜','종가(sell)', '이평값','액션']

df_result = pd.concat([df_buy,df_sell],axis=1)
df_result['수익률'] = df_result['종가(sell)'] / df_result['종가(buy)']


print(df_result)

오류 발생 시, 작성한 코드 전체와 에러 메시지를 첨부해 주세요.

Tip 1) </> 아이콘을 눌러 코드박스를 만들어 보세요.

Tip 2) Ctrl+A(맥의 경우 Command+A) 단축키로 코드를 한 번에 선택할 수 있어요!




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