獲取APPL,MSFT,GOOG的股票數據markdown
stocks = pd.DataFrame({"Date": apple["Date"], "AAPL": apple["Adj Close"], "MSFT": microsoft["Adj Close"], "GOOG": google["Adj Close"]}).set_index("Date") print(stocks.head())
date | AAPL | GOOG | MSFT |
---|---|---|---|
2016-01-04 | 102.612183 | 741.840027 | 53.015032 |
2016-01-05 | 100.040792 | 742.580017 | 53.256889 |
2016-01-06 | 98.083025 | 743.619995 | 52.289462 |
2016-01-07 | 93.943473 | 726.390015 | 50.470697 |
2016-01-08 | 94.440222 | 714.469971 | 50.625489 |
1 多隻股票對比
作出圖形app
stocks.plot(grid = True) plt.show()
因爲google的股價比較高,因此致使了Microsoft和Apple股票波動變小。一個解決的方法是使用不一樣的刻度線。函數
stocks.plot(secondary_y = ["AAPL", "MSFT"], grid = True)
還有的更好的方法是畫出收益圖google
#df.apply(arg)將會把函數參數應用到數據框的每一列,而後再返回一個數據框 #在這行代碼中,lambda中的x是一個series stock_return = stocks.apply(lambda x: x / x[0]) stock_return.head()
作出波動圖spa
stock_return.plot(grid = True).axhline(y = 1, color = "black", lw = 2)
經過這個圖咱們能夠看到每個股票相對於初始價格的收益,咱們還能夠看到這些股票的波動是相關的。
咱們還能夠作出股票的天天的變化圖code
stock_change = stocks.apply(lambda x: np.log(x) - np.log(x.shift(1))) # shift moves dates back by 1.
2 股票均線圖圖片
stocks["AAPL"].plot(label="APPL") apple["20d"] = np.round(apple["Close"].rolling(window = 20, center = False).mean(), 2).plot(label="20Average") apple["50d"] = np.round(apple["Close"].rolling(window = 50, center = False).mean(), 2).plot(label="50Average") plt.legend() plt.show()