728x90
반응형
먼저 제목의 오류 발생하기 전 코드와 결과이다.
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('005930', '2018')
df = df[['Close']].copy()
df['ma1'] = df.rolling(3).mean().shift(1)
df
제목의 오류가 발생한 코드이다.
1 from pandas_datareader import data as pdr
2
3 import yfinance as yf
4 yf.pdr_override()
5
6 import numpy as np
7 import pandas as pd
8
9 import FinanceDataReader as fdr
10
11 df = fdr.DataReader('005930', '2018')
12
13 df = df[['Close']].copy()
14
15 df['ma1'] = df.rolling(3).mean().shift(1)
---> 16 df['ma2'] = df.rolling(30).mean().shift(1) # 오류 발생 부분
17
18 df
오류 메시지를 다시 한 번 보면,
ValueError: Cannot set a DataFrame with multiple columns to the single column ma2
와 같이 다중 컬럼을 가지고 단일 컬럼에 DataFrame 설정을 할 수 없다는 내용임을 알 수 있다. 즉, Close 컬럼과 ma1 컬럼에 대해 새로운 ma2 컬럼을 설정하려고 시도했기 때문이라는 의미이며 이 내용을 현재 수강하는 과정의 강사가 알려주었다.
각설하고!!!
상기 내용을 반영하여 단일 컬럼을 기준으로 새로운 단일 컬럼을 설정하게끔 수정한 코드 및 결과는 아래와 같다.
1 from pandas_datareader import data as pdr
2
3 import yfinance as yf
4 yf.pdr_override()
5
6 import numpy as np
7 import pandas as pd
8
9 import FinanceDataReader as fdr
10
11 df = fdr.DataReader('005930', '2018')
12
13 df = df[['Close']].copy()
14
---> 15 df['ma1'] = df['Close'].rolling(3).mean().shift(1) # 기존 코드 일부 수정
---> 16 df['ma2'] = df['Close'].rolling(30).mean().shift(1) # 수정 코드 반영한 새로운 코드
17
18 df
728x90
반응형
SMALL
댓글