KEEP GOING
[PANDAS] 한국은행 기준 금리 데이터 분석 본문
한국은행경제통계시스템에서 가져온 2000년도 1월부터 2022년 4월까지의 기준 금리 csv 파일입니다.
아래와 같은 순서로 진입하면 기준 금리 데이터와 그래프를 볼 수 있습니다.
통계검색 → 복수통계검색 → 한국은행 주요계정 및 기준금리 → 한국은행 기준금리 및 여수신금리 → 한국은행 기준금리
여기서 csv 파일을 저장하여 pandas 실습을 진행하려고 합니다.
저장된 csv 파일을 그대로 사용하지 않고 파일 안에 연도, 금리 숫자 데이터를 제외한 부가적인 내용들은 삭제해주었습니다.
[csv 파일 불러오기]
import pandas as pd
df = pd.read_csv('C:/Users/dkwlw/Downloads/interest_rate.csv', names=['date', 'year'])
print(df)
확인해보면 아래와 같이 파일이 저장된 것을 확인해 볼 수 있습니다. 날짜 date 컬럼의 경우 첫 행에 문자열 형태로 '1-00'과 같은 값이 주어졌는데 이는 2000년도 1월을 의미합니다.
df.info()를 사용하여 각 컬럼의 데이터 타입을 확인해본 결과, date 컬럼의 데이터 타입은 문자열이었습니다. 따라서 문자열을 datetime 형식으로 바꾸기 위해 먼저 문자열들을 형변환 해주었습니다.
[데이터 형 변환]
for loc in df['date']:
data = loc.split('-')
data[1] = '20' + data[1]
df['date'][idx] = '-'.join(data[::-1])
idx += 1
df['date'] = pd.to_datetime(df['date'])
print(df.info())
다시 데이터 프레임의 info 함수를 돌려주면
다음과 같이 date 컬럼의 Dtype이 datetime으로 변경된 것을 확인해볼 수 있습니다.
* 참고 SettingWithCopyWarning
형 변환 작업시 위와 같이 SettingWithCopyWarning 이라는 경고가 발생합니다.
이러한 경고가 뜰지라도 실제 값이 변경되는 부분에는 아무런 영향을 미치지 않습니다. 더 깊게 이해하고 싶다면 해당 블로그를 참고하길 바랍니다.
https://blog.naver.com/PostView.nhn?blogId=wideeyed&logNo=221817400937
그냥 단순히 경고를 끄고 싶은 경우 다음과 같이 설정해주면 됩니다.
# SettingWithCopyWarning
pd.set_option('mode.chained_assignment', 'warn')
# 경고 무시
pd.set_option('mode.chained_assignment', None)
[데이터 시각화]
import matplotlib.pylab as plt
df.plot(x='date', y='year', xlim=['2000-01-01', '2022-04-01'], ylim=(0, 10))
plt.title("Bank of Korea Interest Rate by Year")
plt.xlabel("month-year")
plt.ylabel("interest rate")
plt.show()
[최종 코드]
import pandas as pd
import matplotlib.pylab as plt
# csv 파일 업로드
df = pd.read_csv('C:/Users/dkwlw/Downloads/interest_rate.csv', names=['date', 'year'])
# SettingWithCopyWarning
pd.set_option('mode.chained_assignment', 'warn')
# 경고 무시
pd.set_option('mode.chained_assignment', None)
idx = 0
# 데이터 형변환
for loc in df['date']:
data = loc.split('-')
data[1] = '20' + data[1]
df['date'][idx] = '-'.join(data[::-1])
idx += 1
df['date'] = pd.to_datetime(df['date'])
# 데이터 시각화
df.plot(x='date', y='year', xlim=['2000-01-01', '2022-04-01'], ylim=(0, 10))
plt.title("Bank of Korea Interest Rate by Year")
plt.xlabel("month-year")
plt.ylabel("interest rate")
plt.show()
[결과물]
'python > pandas' 카테고리의 다른 글
PANDAS 기초 실습 (iloc, loc, filter, OrderedDict) (0) | 2022.01.26 |
---|---|
PANDAS 기초 실습 (iloc, to_csv, read_csv) (0) | 2022.01.26 |
[PANDAS] 시중 은행 오프라인 점포 추이 분석 (0) | 2022.01.18 |
PANDAS 기초 - (2) (DataFrame) (0) | 2022.01.17 |
PANDAS 기초 (Series, DataFrame) (0) | 2022.01.17 |