커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
[5/5] A value is trying to be set on a copy of a slice from a DataFrame.
undefined주차
북마크
임*환
댓글
2
추천
0
조회수
6
조회수
6
답변 완료

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

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


다음과 같은 메시지가 나타났습니다. 이 메시지가 나오지 않게 하려면 어떻게 수정해야 하는지요?


See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy

df['buy_at'] = (df['High'].shift(1) - df['Low'].shift(1)) * k + df['Open']

<ipython-input-14-856399350e56>:6: SettingWithCopyWarning:

A value is trying to be set on a copy of a slice from a DataFrame.

Try using .loc[row_indexer,col_indexer] = value instead



스파르타 즉문즉답




작성한 코드 및 에러 메세지

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

def get_return(code, k):
  df = fdr.DataReader(code,'2018')

  df['buy_at'] = (df['High'].shift(1) - df['Low'].shift(1)) * k + df['Open']
  df['is_buy'] = np.where(df['High'] > df['buy_at'], 'buy','')
  df['sell_at'] = df['Open'].shift(-1)
  df = df[df['is_buy'] == 'buy']
  df['return'] = df['sell_at'] / df['buy_at']
  return df[['return']].cumprod().iloc[-1,-1] - 1

df = pd.DataFrame()

for k in np.arange(0.4, 0.6, 0.01):
  doc = {
      'k':k,
      'return':get_return('005930', k)
  }
  df = df.append(doc, ignore_index = True)
df.sort_values(by='return', ascending=False))




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