感谢余博充足的资料准备和耐心的沟通指引。几位同学的课堂问答,小密圈各位之间的沟通,简书的文章和评论颇有启发。对于已经重复的内容我尽量简洁或略过。
(一) Anaconda安装
Anaconda在国内环境用镜像地址安装较快。
(二) Jupyter Notebook使用
用命令行模式,如Anaconda Prompt里敲入jupyter notebook
启动速度较快。
想在初始内核为python 3的jupyter中添加python 2的内核有2种主要方式,可以参考文章如何同时在 Anaconda 同时配置 python 2和3。
快捷键里连按两次D键表示删除当前选中单元这个略特殊容易忽视或忘掉。
(三) Python实战
(1)数据导入
# 导入pandas模块
import pandas as pd
# 设置直接显示图片
%matplotlib inline
像%开头的魔术关键字(magic keywords)的使用和参考可以查看余博的左手程序员,右手作家:你必须会的Jupyter Notebook和IPython的Built-in magic commands
import pandas as pd
import datetime
import pandas_datareader.data as web
# 设置获取的时间区间
start = datetime.datetime(2017,6,1)
end = datetime.datetime(2017,6,30)
# 从google获取苹果的股票数据
apple = web.DataReader("AAPL", "google", start, end)
上面的pandas_datareader模块需要先安装才能使用。用的是Google的数据源,在国内连接需要相应设置。
(2)数据观察
除了直接显示整个DataFrame对象外,还有head(), tail(),shape, index,columns,info(),describe()等方法显示相应的数据集合或数据统计信息。具体意义可以参考课件。
DataFrame.plot是pandas里DataFrame对象的绘图方法。在jupyter notebook或IPython prompt模式下未执行魔术关键字%matplotlib inline
前调用不会直接显示图像。除了魔术关键字外还有2种方法可以展现图像,小密圈里有讨论,我试过其中1种。
(3)数据框操作
索引和切片
下面列出了一些我觉得比较有趣的操作。
-
stock.loc['2017-06-01':'2017-06-05', 'Open':'Close']
返回
-
stock.loc['2017-06-01':'2017-06-05', ['Open', 'Close']]
返回
过滤
&
和|
对应与和或操作符,如
stock[(stock.Close > stock.Open) & (stock.Volume > 3.5e7)]
stock[(stock.Close >= stock.High) | (stock.Volume > 5.5e7)]
生成新的列
stock['Close'].shift(1)
可以把指定的列下移一行,用这种方式生成的新数列可以与原数列相减来生成该列的相邻元素之间的差值,即变化值。
stock['Change'] = stock['Close'] - stock['Close'].shift(1)