Yahoo Finance to Google Finance

Yahoo Finance to Google Finance

Yahoo의 서비스 구조 변경 (2017년 5월 15일 부터 아래 2개 URL 서비스 불가)

이 때문에, pandas_datareader 에서 yahoo로 지정했을 경우 동작하지 않음 (2017년 6월 현재)

이 부분들을 Google Finance 대체 할 수 있으며,
아래와 같이 코스피 지수, 개별종목, 가격을 URL에서 직접 가져오기 3가지로 부분을 정리하였습니다
(다른 Yahoo finance API는 잘 동작합니다)

2017 FinanceData http://fb.com/financedata
In [1]:
import pandas as pd
from datetime import datetime
from pandas_datareader import data

코스피 지수

# yahoo
start = datetime(2017, 1, 1)
end = datetime(2017, 4, 30)

df = data.get_data_yahoo("^KS11", start, end)
df = data.DataReader("^KS11", "yahoo", start, end)
In [2]:
start = datetime(2017, 1, 1)
end = datetime(2017, 4, 30)

# google
df = data.get_data_google("KRX:KOSPI", start, end)
df.head()
Out[2]:
Open High Low Close Volume
Date
2017-01-02 2022.23 2031.79 2015.68 2026.16 229874000
2017-01-03 2034.31 2044.07 2028.47 2043.97 268127000
2017-01-04 2046.29 2046.29 2040.61 2045.64 371488000
2017-01-05 2045.52 2046.50 2039.49 2041.95 541343000
2017-01-06 2048.11 2051.84 2045.66 2049.12 455350000
In [3]:
# google
df = data.DataReader("KRX:KOSPI", "google", start, end)
df.head()
Out[3]:
Open High Low Close Volume
Date
2017-01-02 2022.23 2031.79 2015.68 2026.16 229874000
2017-01-03 2034.31 2044.07 2028.47 2043.97 268127000
2017-01-04 2046.29 2046.29 2040.61 2045.64 371488000
2017-01-05 2045.52 2046.50 2039.49 2041.95 541343000
2017-01-06 2048.11 2051.84 2045.66 2049.12 455350000

개별 종목

In [ ]:
# yahoo
# df = data.get_data_yahoo("005930.KS", start, end)

# google
df = data.get_data_google("KRX:005930", start, end)
df.head()
Out[ ]:
Open High Low Close Volume
Date
2017-01-02 1799000.0 1812000.0 1794000.0 1805000.0 92936
2017-01-03 1814000.0 1831000.0 1801000.0 1824000.0 146807
2017-01-04 1825000.0 1826000.0 1805000.0 1808000.0 145894
2017-01-05 1803000.0 1803000.0 1777000.0 1778000.0 209212
2017-01-06 1809000.0 1822000.0 1802000.0 1810000.0 167595

URL에서 가져오기

In [ ]:
# yahoo
url = "http://real-chart.finance.yahoo.com/table.csv?s=%s&a=0&b=1&c=2017&d=3&e=30&f=2017&g=d&ignore=.csv"

# google
url = "http://www.google.com/finance/historical?q=KRX:KOSPI&startdate=2017-01-30&enddate=2017-04-30&output=csv"

df = pd.read_csv(url, index_col='Date', parse_dates=True)
df.head(10)

댓글