[Python]初心者筆記8(以pandas熊貓套件pandas_datareader快速讀取股票資料)

[Python]初心者筆記8(以pandas熊貓套件pandas_datareader快速讀取股票資料)

這個實例的注意事項比較多,直接看註解吧!
不懂股票的人,看下面程式碼的計算方式可能覺得霧煞煞,但是~
本例子主要是讓大家瞭解一件事情就是:
python跟各大網站的合作非常多,很多時候無須自行界接API就可以直接取得資料
熱門的股票資料更是有很多的內建function可以直接幫你算出結果,不需要自己寫數學邏輯做計算

#進行數據分析之前常要引用的函式庫
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt

#熊貓是python的excel
import pandas as pd

#於終端機試著安裝pandas_datareader之後才可繼續進行後續的教學
#建議先更新看看: conda update pandas-datareader
#之前沒安裝過的話,就直接安裝吧: conda install pandas-datareader

#pandas_datareader可以直接到網路上跟合作的廠商抓資料
import pandas_datareader.data as web

#pandas_datareader可以直接到網路上跟合作的廠商抓資料
#無須輸入任何API網址,只要輸入 
#1.要什麼資料, 2.從哪個來源來, 3.從什麼時候的資料開始 即可
#ex:從yahoo取得apple的股價資料
#yahoo已經不提供資料了, 隨便改用一個morningstar提供的資料吧
df = web.DataReader("AAPL","morningstar",start="2012-09-01")

#取出data frame其中一個欄位:關盤價
P = df["Close"]

#計算每一期之間的報酬率
P.diff()

#計算每一期之間的報酬率(跟第一期的資料相比)
r = P.diff() / P
r.plot()

#看前一百天開始的紀錄(只要設定index=-100就是一百天前,是不是很神奇!?)
r[-100:].plot()

#移動平均:透過window=20參數可以將前20天的累計值計算出來
P.rolling(window=20).mean()

#當然也可以把移動平均畫成圖表
P.rolling(window=20).mean().plot()

#而且還可以將兩個曲線同時顯示在一個表,方便作比較
P.plot()
P.rolling(window=20).mean().plot()
P.rolling(window=60).mean().plot()

參考資料:
成為python數據分析達人的第一課(自學課程)
http://moocs.nccu.edu.tw/course/123/intro