
* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.
* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.
GPT에게
FinanceDataReader를 사용해서 코스피 등 각종 지수를 시각화하는 python 코드를 작성해 줘.
라고 질문해서 얻은 코드를 실행하였는데, 시각화 부분에서 계속 에러가 발생합니다.
강의에서 강사님이 GPT에게 질문하여 얻은 코드와 비교해보아도 잘 모르겠어 질문드립니다.
올바른 코드와, 왜 이런 오류가 발생했는지도 궁금합니다!!
작성 코드입니다.
!pip install finance-datareader matplotlib
import FinanceDataReader as fdr
import pandas as pd
import matplotlib.pyplot as plt
# 데이터 가져올 기간 설정
start_date = '2023-01-01'
end_date = '2023-12-31'
# 지수 목록과 그 코드
indices = {
'KOSPI': 'KS11',
'KOSDAQ': 'KQ11',
'KRX100': 'KRX100'
}
# 각 지수의 데이터를 가져와서 딕셔너리에 저장
index_data = {}
for name, code in indices.items():
try:
df = fdr.DataReader(code, start_date, end_date)
index_data[name] = df
print(f"Collected data for {name} ({code})")
except Exception as e:
print(f"Failed to get data for {name} ({code}): {e}")
# 시각화
plt.figure(figsize=(14, 7))
for name, df in index_data.items():
plt.plot(df.index, df['Close'], label=name)
plt.title('Index Prices (2023)')
plt.xlabel('Date')
plt.ylabel('Close Price')
plt.legend()
plt.grid(True)
plt.show()
에러문구입니다.
Requirement already satisfied: finance-datareader in /usr/local/lib/python3.10/dist-packages (0.9.91)
Requirement already satisfied: matplotlib in /usr/local/lib/python3.10/dist-packages (3.7.1)
Requirement already satisfied: pandas>=0.19.2 in /usr/local/lib/python3.10/dist-packages (from finance-datareader) (2.0.3)
Requirement already satisfied: requests>=2.3.0 in /usr/local/lib/python3.10/dist-packages (from finance-datareader) (2.31.0)
Requirement already satisfied: requests-file in /usr/local/lib/python3.10/dist-packages (from finance-datareader) (2.1.0)
Requirement already satisfied: lxml in /usr/local/lib/python3.10/dist-packages (from finance-datareader) (4.9.4)
Requirement already satisfied: tqdm in /usr/local/lib/python3.10/dist-packages (from finance-datareader) (4.66.4)
Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib) (1.2.1)
Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib) (0.12.1)
Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib) (4.53.0)
Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib) (1.4.5)
Requirement already satisfied: numpy>=1.20 in /usr/local/lib/python3.10/dist-packages (from matplotlib) (1.25.2)
Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib) (24.1)
Requirement already satisfied: pillow>=6.2.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib) (9.4.0)
Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib) (3.1.2)
Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.10/dist-packages (from matplotlib) (2.8.2)
Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas>=0.19.2->finance-datareader) (2023.4)
Requirement already satisfied: tzdata>=2022.1 in /usr/local/lib/python3.10/dist-packages (from pandas>=0.19.2->finance-datareader) (2024.1)
Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.7->matplotlib) (1.16.0)
Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests>=2.3.0->finance-datareader) (3.3.2)
Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests>=2.3.0->finance-datareader) (3.7)
Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests>=2.3.0->finance-datareader) (2.0.7)
Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests>=2.3.0->finance-datareader) (2024.6.2)
Collected data for KOSPI (KS11)
Collected data for KOSDAQ (KQ11)
HTTP Error 404: Not Found - symbol "KRX100" not found or invalid periods
Collected data for KRX100 (KRX100)
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-6-a6c8eba932a7> in <cell line: 31>()
30
31 for name, df in index_data.items():
---> 32 plt.plot(df.index, df['Close'], label=name)
33
34 plt.title('Index Prices (2023)')
1 frames
/usr/local/lib/python3.10/dist-packages/pandas/core/indexes/range.py in get_loc(self, key)
347 raise KeyError(key) from err
348 if isinstance(key, Hashable):
--> 349 raise KeyError(key)
350 self._check_indexing_error(key)
351 raise KeyError(key)
KeyError: 'Close'
코드에 따라 출력된 표입니다.

