2019年5月16日 星期四

[Python] 如何用 pandas-datareader 抓取台股資料

Environment : Windows + Jupyter
#需要的套件
import pandas as pd
import pandas_datareader as pdr
import datetime as datetime
import matplotlib.pyplot as plt

#國泰金控(2882)為範例
stock_number = '2882.TW'
start = datetime.datetime(2018,1,1)
end   = datetime.datetime(2018,6,1)
DataFrame = pdr.DataReader(stock_number, 'yahoo', start, end)

print DataFrame

#畫圖
fig = plt.figure(figsize=(5, 5))
AX  = fig.add_axes([0.1,0.5,1,0.2])
AX2 = fig.add_axes([0.1,0.1,1,0.2])

#表格標題
AX.set_title(stock_number)
AX2.set_title(stock_number)

#收盤價
AX.plot(DataFrame['Close'], label='Close', color='B')
#成交量
AX2.bar(DataFrame.index, DataFrame['Volume'], label='Volume', color='R')

AX.legend();
AX2.legend();

                 High        Low       Open      Close    Volume  Adj Close
Date                                                                       
2018-01-02  54.400002  53.299999  53.400002  54.200001  15815336  51.762951
2018-01-03  55.400002  54.299999  54.799999  55.200001  31833721  52.717987
2018-01-04  55.400002  54.500000  55.299999  55.400002  17321761  52.908997
2018-01-05  55.799999  55.000000  55.299999  55.700001  22221913  53.195503
2018-01-08  55.799999  55.000000  55.799999  55.700001  22253987  53.195503
2018-01-09  55.799999  55.200001  55.700001  55.799999  12742940  53.291008
2018-01-10  56.700001  55.599998  56.500000  55.599998  32365670  53.099998
2018-01-11  55.900002  55.000000  55.799999  55.400002  16238278  52.908997
2018-01-12  55.900002  55.299999  55.500000  55.599998  11693485  53.099998
2018-01-15  56.599998  55.900002  56.000000  56.500000  24899376  53.959534
2018-01-16  56.799999  56.200001  56.500000  56.599998  16594879  54.055035
2018-01-17  56.400002  55.799999  56.299999  56.299999  17042147  53.768524
2018-01-18  56.500000  55.799999  56.500000  55.900002  14582079  53.386513
2018-01-19  56.200001  55.599998  55.700001  56.000000  10183237  53.482014
2018-01-22  56.099998  55.200001  55.799999  55.599998  18754752  53.099998
2018-01-23  56.500000  55.299999  55.799999  56.000000  15109737  53.482014
2018-01-24  55.900002  55.000000  55.799999  55.700001  18367391  53.195503
2018-01-25  56.099998  55.200001  55.700001  55.599998  17297427  53.099998
2018-01-26  55.299999  54.500000  55.299999  54.700001  22318756  52.240471
2018-01-29  55.200001  54.599998  55.000000  55.200001  15710037  52.717987
2018-01-30  55.099998  54.400002  55.000000  54.400002  13049295  51.953960
2018-01-31  55.000000  53.799999  54.000000  54.599998  16946736  52.144962
2018-02-01  55.200001  54.599998  54.700001  54.799999  10666353  52.335972
2018-02-02  55.000000  54.400002  54.500000  54.700001   9381541  52.240471
2018-02-05  54.099998  53.500000  53.500000  54.099998  14671051  51.667446
2018-02-06  52.500000  50.500000  52.099998  50.799999  38452497  48.515827
2018-02-07  53.500000  52.000000  52.400002  52.700001  27209771  50.330399
2018-02-08  53.500000  52.799999  53.299999  53.299999  14356310  50.903416
2018-02-09  53.299999  52.000000  52.099998  52.799999  22072666  50.425900
2018-02-12  53.799999  53.000000  53.799999  53.000000  17578655  50.616909
...               ...        ...        ...        ...       ...        ...
2018-04-20  52.799999  52.200001  52.799999  52.500000  10233680  50.139389
2018-04-23  52.799999  52.200001  52.200001  52.500000  10406015  50.139389
2018-04-24  52.900002  52.400002  52.799999  52.500000  10370094  50.139389
2018-04-25  52.500000  51.700001  52.299999  52.200001  23868687  49.852879
2018-04-26  52.799999  52.000000  52.599998  52.799999  21040927  50.425900
2018-04-27  53.700001  53.099998  53.200001  53.500000  19589914  51.094425
2018-04-30  54.000000  53.400002  53.799999  53.500000  10100426  51.094425
2018-05-02  53.799999  53.099998  53.200001  53.500000  12811907  51.094425
2018-05-03  53.799999  52.799999  53.299999  52.900002  11531521  50.521404
2018-05-04  53.000000  52.700001  52.700001  52.799999   7078223  50.425900
2018-05-07  53.400002  52.799999  53.400002  53.000000  14149062  50.616909
2018-05-08  53.500000  52.900002  53.000000  53.500000  13892667  51.094425
2018-05-09  53.799999  53.500000  53.500000  53.599998  13431774  51.189926
2018-05-10  53.799999  53.099998  53.599998  53.299999  16613918  50.903416
2018-05-11  54.700001  53.599998  53.599998  54.599998  26920084  52.144962
2018-05-14  55.000000  54.599998  54.799999  55.000000  14683155  52.526978
2018-05-15  55.099998  54.000000  55.000000  54.000000  18238343  51.571941
2018-05-16  55.000000  54.400002  54.599998  54.900002  18765990  52.431477
2018-05-17  55.400002  54.500000  55.000000  54.900002  14350081  52.431477
2018-05-18  54.900002  54.400002  54.900002  54.400002  15288612  51.953960
2018-05-21  55.000000  54.500000  54.599998  55.000000  11385495  52.526978
2018-05-22  55.000000  54.700001  54.900002  54.700001   9028106  52.240471
2018-05-23  55.099998  53.900002  55.000000  54.000000  12280601  51.571941
2018-05-24  54.500000  54.000000  54.400002  54.200001  10071640  51.762951
2018-05-25  54.400002  53.900002  54.299999  53.900002   9832938  51.476440
2018-05-28  54.200001  53.799999  53.900002  54.099998  10468660  51.667446
2018-05-29  54.400002  53.799999  54.099998  54.099998   8982523  51.667446
2018-05-30  53.500000  52.700001  53.500000  52.900002  26424947  50.521404
2018-05-31  53.799999  53.299999  53.500000  53.599998  34098025  51.189926
2018-06-01  53.700001  53.099998  53.599998  53.500000  10980132  51.094425

[98 rows x 6 columns]
國泰金
~ End ~