這段時(shí)間某國(guó)股市很火爆,不少磚家在分析股市火爆的各種原因,更有不少人看到別人掙錢眼紅了,點(diǎn)鈔票殺入股市。不過,我還是很淡定的,因?yàn)闆]錢,所以不用擔(dān)心任何股市風(fēng)險(xiǎn)臨到。
但是,為了體現(xiàn)本人也是與時(shí)俱進(jìn)的,就以股票數(shù)據(jù)為例子,來簡(jiǎn)要說明 pandas 和其它模塊在處理數(shù)據(jù)上的應(yīng)用。
或許你稀奇,為什么要下載 yahoo 上的股票數(shù)據(jù)呢?國(guó)內(nèi)網(wǎng)站上不是也有嗎?是有。但是,那時(shí)某國(guó)內(nèi)的。我喜歡 yahoo,因?yàn)樗?jīng)吸引我,注意我說的是www.yahoo.com,不是后來被阿里巴巴收購并拆散的那個(gè)。
http://wiki.jikexueyuan.com/project/start-learning-python/images/31301.png" alt="" />
雖然 yahoo 的世代漸行漸遠(yuǎn),但她終究是值得記憶的。所以,我要演示如何下載 yahoo 財(cái)經(jīng)欄目中的股票數(shù)據(jù)。
In [1]: import pandas
In [2]: import pandas.io.data
In [3]: sym = "BABA"
In [4]: finace = pandas.io.data.DataReader(sym, "yahoo", start="2014/11/11")
In [5]: print finace.tail(3)
Open High Low Close Volume Adj Close
Date
2015-06-17 86.580002 87.800003 86.480003 86.800003 10206100 86.800003
2015-06-18 86.970001 87.589996 86.320000 86.750000 11652600 86.750000
2015-06-19 86.510002 86.599998 85.169998 85.739998 10207100 85.739998
下載了阿里巴巴的股票數(shù)據(jù)(自 2014 年 11 月 11 日以來),并且打印最后三條。
已經(jīng)得到了一個(gè) DataFrame 對(duì)象,就是前面已經(jīng)下載并用 finace 變量引用的對(duì)象。
In[6]: import matplotlib.pyplot as plt
In [7]: plt.plot(finace.index, finace["Open"])
Out[]: [<matplotlib.lines.Line2D at 0xa88e5cc>]
In [8]: plt.show()
于是乎出來了下圖:
http://wiki.jikexueyuan.com/project/start-learning-python/images/31302.png" alt="" />
從圖中可以看出阿里巴巴的股票自從 2014 年 11 月 11 日到 2015 年 6 月 19 日的股票開盤價(jià)變化??磥砟莻€(gè)所謂的“光棍節(jié)”得到了股市的認(rèn)可,所以,在此我鄭重地建議阿里巴巴要再造一些節(jié)日,比如 3 月 3 日、4 月 4 日,還好,某國(guó)還有農(nóng)歷,陽歷用完了用農(nóng)歷??梢跃S持股票高開高走了。
阿里巴巴的事情,我就不用操心了。
上面指令中的 import matplotlib.pyplot as plt
是個(gè)此前沒有看到的。matplotlib
模塊是 Python 中繪制二維圖形的模塊,是最好的模塊。本教程在這里展示了它的一個(gè)小小地繪圖功能,讀者就一下看到阿里巴巴“光棍節(jié)”的力量,難道還不能說明 matplotlib 的強(qiáng)悍嗎?很可惜,matplotlib 的發(fā)明者——John Hunter 已經(jīng)于 2012 年 8 月 28 日因病醫(yī)治無效英年早逝,這真是天妒英才呀。為了緬懷他,請(qǐng)讀者訪問官方網(wǎng)站:matplotlib.org,并認(rèn)真學(xué)習(xí)這個(gè)模塊的使用。
經(jīng)過上面的操作,讀者可以用 dir()
這個(gè)以前常用的法寶,來查看 finace 所引用的 DataFrame 對(duì)象的方法和屬性等。只要運(yùn)用此前不斷向大家演示的方法——dir+help
——就能夠?qū)@個(gè)對(duì)象進(jìn)行操作,也就是能夠?qū)υ摴善睌?shù)據(jù)進(jìn)行各種操作。
再次聲明,本課程僅僅是稍微演示一下相關(guān)操作,如果讀者要深入研習(xí),恭請(qǐng)尋找相關(guān)的專業(yè)書籍資料閱讀學(xué)習(xí)。
如果你認(rèn)為有必要打賞我,請(qǐng)通過支付寶:qiwsir@126.com,不勝感激。