从0开始的python金融数据分析

首先要指出金融数据分析不是只有这一条路径。本文主要着重点在统计金融和python代码,为量化交易和投研做铺垫。

目的是为了整理学习笔记。欢迎各种讨论交流,我可能会为你的问题写一篇文章。

首先给出一张金融数据分析的学习流程:

从0开始的python金融数据分析

接下来的一系列文章都会以这张图展开。因为我是边学边整理的,建模这一块还是灰色。希望轮到写建模的时候我已经学完了XD

为什么要学Python?

之所以用python分析数据,一方面是python的生态环境很强大,matlab,R等统计工具都可以在python上找到相应的库,另一方面python对新手很友好,容易上手。

如何入门Python?

Python基础:

强烈推荐一本Python入门书籍《Python编程:从入门到实践》。主体分为两个部分,第一部分介绍包括面对对象在内的基础内容,第二部分有设计游戏等的实践内容。每一行新学的代码都会有解说,入门最佳选择。

从0开始的python金融数据分析

书长这样,图片源自网络

还可以过一遍mooc上的嵩天老师的python基础课程,有理有据,课后还有充满成就感的作业,给学习python一个自信的开始。BTW计算机等级考试的教材就是嵩老师编的,学完基础课程就相当于计算机二级python合格了。

如果学得还不过瘾,还可以参照@彭泉鑫Python 有哪些好的学习资料或者博客? - 知乎 的进度条从入门到进阶一条龙。

选哪个作为Python开发工具?

这是一个coffee or tea的问题,选你钟意的就好。这里推荐Pycharm和Anaconda,既适合入门,也适合编写较大较复杂的程序。其中Anaconda内置了python语言和大量常用的第三方库,以及多个常用集成开发环境,我习惯用它,尤其是Anaconda里的spyder。

spyder的tools – preferences – syntax里可以更改环境风格,用Zenburn或其他深色调系列,对于长时间盯着屏幕的码农来说更温柔舒适。

从0开始的python金融数据分析

spyder的Zenburn风格

小疑问:如何在Anaconda里安装或更新第三方库?

如果你要用的第三方库是Anaconda里没有的,比如tushare,可以在Anaconda里自行安装。

Enviroments –点击 base(root)的右三角形– Open Terminal –输入conda install 第三方库名

除了Python基础,还要学习哪些第三方库和内容?

首先要恭喜你通关Python菜鸟模式,摸到了数据分析的门槛。

快速阅读一遍《利用Python进行数据分析》 ,了解numpy,pandas和matplotlib这三个数据分析领域最主要的第三方库,并熟悉数据是如何加载、存储以及处理的。这本书是2013年出版的,经历了python版本的更新换代之后,有些函数已经不适用了,需要自行摸索最新的函数参数。

就我目前的使用频率来看,pandas是最广泛最普遍的,包括之后的统计变量,时间序列,pandas库都是主力选手,建议解锁pandas的各种学习姿势。

B站上有【全30集】使用 pandas 进行数据分析:Data analysis in Python with pandas_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili ,一集10分钟左右,还可以在学习pandas的同时锻炼英语(等你发育起来了之后会发现有些资料还是国外网站的全,加油吧少年)。 这里Kevin用的是Anaconda里的Jupiter notebook,它的Python打开入口在这里:

从0开始的python金融数据分析

同时你会发现有些知识点已经在《利用python进行数据分析》看过了,不要换频道,Kevin的bonus tips是书里没有,但又十分有用的。同样的,有些函数经过迭代更新,已经被删除了,学习的时候还是得参照官方说明http://pandas.pydata.org/pandas-docs/stable/index.html 。

 

学完这些就可以膨胀了吗?还没有。再往后Scipy,Statsmodels,Seanborn等等都将会频繁出现,我们将在学习统计变量的时候遇到这些拦路虎。

从哪里获取金融数据?

作为学有余力的geek们会学习爬虫自行去各个官网上爬取数据,但快学秃了的我选择用tushare导入金融数据。tushare包括了股票、期权、期货、外汇、宏观、即时新闻等金融数据,甚至还可以查看电影票房。一些数据需要用积分兑换,在官网 https://tushare.pro/ 可以找到相关信息。

一般获取tushare 数据的方式,以期货为例:

import tushare as ts

pro=ts.pro_api('axxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxe') #这里输入你的token

df = pro.fut_daily(ts_code = code,start_date = '20180101', end_date = '20190101',\

fields = 'trade_date, ts_code, close, pre_close')

tushare的数据已经经过了清洗,看起来干净整洁。

从0开始的python金融数据分析

有了火把和斧头,就可以进入洞穴探险了! 今后的文章将会整理有关统计分析的代码和相关知识。走了不少的弯路,脱了不少的头发(我想我还可以撑几年吧),希望你可以不用再经历这些 : )