pandas 股票分析图

获取APPL,MSFT,GOOG的股票数据

stocks = pd.DataFrame({"Date": apple["Date"],
                    "AAPL": apple["Adj Close"],
                    "MSFT": microsoft["Adj Close"],
                    "GOOG": google["Adj Close"]}).set_index("Date")
print(stocks.head())
dateAAPLGOOGMSFT
2016-01-04102.612183741.84002753.015032
2016-01-05100.040792742.58001753.256889
2016-01-0698.083025743.61999552.289462
2016-01-0793.943473726.39001550.470697
2016-01-0894.440222714.46997150.625489

1 多只股票对比
做出图形

stocks.plot(grid = True)
plt.show()

这里写图片描述
由于google的股价比较高,所以导致了Microsoft和Apple股票波动变小。一个解决的方法是使用不同的刻度线。

stocks.plot(secondary_y = ["AAPL", "MSFT"], grid = True)

这里写图片描述
还有的更好的方法是画出收益图

#df.apply(arg)将会把函数参数应用到数据框的每一列,然后再返回一个数据框
#在这行代码中,lambda中的x是一个series
stock_return = stocks.apply(lambda x: x / x[0])
stock_return.head()

做出波动图

stock_return.plot(grid = True).axhline(y = 1, color = "black", lw = 2)

这里写图片描述
通过这个图我们可以看到每一个股票相对于初始价格的收益,我们还可以看到这些股票的波动是相关的。
我们还可以做出股票的每天的变化图

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()

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值