這段時間某國股市很火爆,不少磚家在分析股市火爆的各種原因,更有不少人看到別人掙錢眼紅了,點鈔票殺入股市。不過,我還是很淡定的,因為沒錢,所以不用擔心任何股市風險臨到。
但是,為了體現本人也是與時俱進的,就以股票數據為例子,來簡要說明pandas和其它模塊在處理數據上的應用。
## [](https://github.com/qiwsir/StarterLearningPython/blob/master/313.md#下載yahoo上的數據)下載yahoo上的數據
或許你稀奇,為什么要下載yahoo上的股票數據呢?國內網站上不是也有嗎?是有。但是,那時某國內的。我喜歡yahoo,因為她曾經吸引我,注意我說的是[www.yahoo.com](http://www.yahoo.com/),不是后來被阿里巴巴收購并拆散的那個。
[](https://github.com/qiwsir/StarterLearningPython/blob/master/3images/31301.png)
雖然yahoo的世代漸行漸遠,但她終究是值得記憶的。所以,我要演示如何下載yahoo財經欄目中的股票數據。
~~~
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
~~~
下載了阿里巴巴的股票數據(自2014年11月11日以來),并且打印最后三條。
## [](https://github.com/qiwsir/StarterLearningPython/blob/master/313.md#畫圖)畫圖
已經得到了一個DataFrame對象,就是前面已經下載并用finace變量引用的對象。
~~~
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()
~~~
于是乎出來了下圖:
[](https://github.com/qiwsir/StarterLearningPython/blob/master/3images/31302.png)
從圖中可以看出阿里巴巴的股票自從2014年11月11日到2015年6月19日的股票開盤價變化。看來那個所謂的“光棍節”得到了股市的認可,所以,在此我鄭重地建議阿里巴巴要再造一些節日,比如3月3日、4月4日,還好,某國還有農歷,陽歷用完了用農歷。可以維持股票高開高走了。
阿里巴巴的事情,我就不用操心了。
上面指令中的`import matplotlib.pyplot as plt`是個此前沒有看到的。`matplotlib`模塊是python中繪制二維圖形的模塊,是最好的模塊。本教程在這里展示了它的一個小小地繪圖功能,讀者就一下看到阿里巴巴“光棍節”的力量,難道還不能說明matplotlib的強悍嗎?很可惜,matplotlib的發明者——John Hunter已經于2012年8月28日因病醫治無效英年早逝,這真是天妒英才呀。為了緬懷他,請讀者訪問官方網站:[matplotlib.org](http://matplotlib.org/),并認真學習這個模塊的使用。
經過上面的操作,讀者可以用`dir()`這個以前常用的法寶,來查看finace所引用的DataFrame對象的方法和屬性等。只要運用此前不斷向大家演示的方法——`dir+help`——就能夠對這個對象進行操作,也就是能夠對該股票數據進行各種操作。
再次聲明,本課程僅僅是稍微演示一下相關操作,如果讀者要深入研習,恭請尋找相關的專業書籍資料閱讀學習。
- 第零章 預備
- 關于Python的故事
- 從小工到專家
- Python安裝
- 集成開發環境
- 第壹章 基本數據類型
- 數和四則運算
- 除法
- 常用數學函數和運算優先級
- 寫一個簡單的程序
- 字符串(1)
- 字符串(2)
- 字符串(3)
- 字符串(4)
- 字符編碼
- 列表(1)
- 列表(2)
- 列表(3)
- 回顧list和str
- 元組
- 字典(1)
- 字典(2)
- 集合(1)
- 集合(2)
- 第貳章 語句和文件
- 運算符
- 語句(1)
- 語句(2)
- 語句(3)
- 語句(4)
- 語句(5)
- 文件(1)
- 文件(2)
- 迭代
- 練習
- 自省
- 第叁章 函數
- 函數(1)
- 函數(2)
- 函數(3)
- 函數(4)
- 函數練習
- 第肆章 類
- 類(1)
- 類(2)
- 類(3)
- 類(4)
- 類(5)
- 多態和封裝
- 特殊方法(1)
- 特殊方法(2)
- 迭代器
- 生成器
- 上下文管理器
- 第伍章 錯誤和異常
- 錯誤和異常(1)
- 錯誤和異常(2)
- 錯誤和異常(3)
- 第陸章 模塊
- 編寫模塊
- 標準庫(1)
- 標準庫(2)
- 標準庫(3)
- 標準庫(4)
- 標準庫(5)
- 標準庫(6)
- 標準庫(7)
- 標準庫(8)
- 第三方庫
- 第柒章 保存數據
- 將數據存入文件
- mysql數據庫(1)
- MySQL數據庫(2)
- mongodb數據庫(1)
- SQLite數據庫
- 電子表格
- 第捌章 用Tornado做網站
- 為做網站而準備
- 分析Hello
- 用tornado做網站(1)
- 用tornado做網站(2)
- 用tornado做網站(3)
- 用tornado做網站(4)
- 用tornado做網站(5)
- 用tornado做網站(6)
- 用tornado做網站(7)
- 第玖章 科學計算
- 為計算做準備
- Pandas使用(1)
- Pandas使用(2)
- 處理股票數據
- 附:網絡文摘
- 如何成為Python高手
- ASCII、Unicode、GBK和UTF-8字符編碼的區別聯系