美文网首页解密大数据我爱编程程序员
Python数据分析1——Python热身

Python数据分析1——Python热身

作者: Lochaiching | 来源:发表于2018-03-20 07:47 被阅读102次

这是我第二次上Python数据分析了,听到的内容和之前稍微有点不一样,这节课程主要介绍这个系列课程大纲的内容,安装软件,和最开始做的简单入门题目

先来看看这7次课的编排:

先来讲一个区分,我们内容里面的知识和技能:

知识:概率统计以知识为主,需要深刻理解

技能:Python是编程技能,需要不断地实践

这也是为什么我们结合Python和统计来进行这次课程内容。

不过老师在里面讲到“Why 统计”中,除了大家都是数据为王数据分析之类的原因之外,机器翻译也是应用相关的知识,也有有点意外:

应该听到最多的是“How old are you?”被一一对应单词直接翻译成“怎么老是你?” 后来通过导入大量数据的翻译规律,使用了统计翻译后大大提高了翻译的准确率。

而具体为什么选择Python语言,各位可以找到我们课程里面的PPT资料,详细对比的内容会让你更加坚定Python的选择的。其中要给大家一个预告,以下四个数据分析工具,我们在课程中将会讲到前三种:

接下来的内容是讲安装Anaconda这个软件,这一部分内容可以看我上次课程的链接:文科生学习Python系列1:下载Anaconda 

其中需要注意的是下载最新版本,2.7版本后续将不会更新维护。

吴老师总结了安装的步骤,也可以按照这个步骤操作:

1,官网 https://www.anaconda.com/download/;国内镜像 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/  。觉得官网下载速度慢的同学可以去国内镜像下载。

根据自己的操作系统(Windows/Mac OS/Linux)选择相应的版本下载(下载Python3.6版本的graphical installer)。

2, 点击下载好的anaconda,点击next完成安装。这个环节和普通软件安装一致。

3. 到课程的讨论页面 下载本次课所需的notebook和股票csv数据。下载并解压缩之后,将课程文件夹放到你自己选择的位置(比如说桌面)。

4. 这一步我们将通过anaconda navigator来启动ipython notebook。Windows用户可以在Windows搜索里输入Anaconda Navigator来启动;Mac用户可以用sportlight search(通过快捷键command + 空格启动)中输入Anaconda Navigator来启动 。

5. 点击jupyter notebook对应的launch图标,然后会弹出一个浏览器,你就可以在浏览器栗选择你刚才保存的本节课所需的文件夹了(视屏中16:30左右开始)。在浏览器中点击,你就可以看到如下的界面:(图略)

在浏览器中找到你刚在保存的第一节课文件夹,双击进入以后点击Lesson1_code.ipynb就会进入ipython notebook,开始编程吧!

课程文件使用说明,所有课程文件可以通过课程讨论区入口下载,请大家下载:第1课资料.zip。其中我们有四个文件:

1. 01_Python热身.pdf:课程讲义。

2. Lesson1_code.ipynb:包含所有课程代码的ipython notebook,在课程视屏中我们会详细指导如何打开这个文件。

3. stock.csv: 股票数据,我们将在课程中讲解如何将股票数据导入python中并对其进行基本的操作。

4. weatherdata.csv:天气数据,开放式课后探索作业需要的数据。

提醒:最好把数据文件和代码文件放在同一个目录中,这样读取数据的时候会比较方便,而不用写比较复杂的路径名称了。

Jupyter notebook 打开后我们可以看到它和我们电脑的文件是相连接的,只要你把数据存在了电脑里面,你就能看到文件路径里面的文件内容了。

我们可以看到jupyter打开文件后里面的内容,文本使用markdown编辑出来。关于如何使用markdown大家可以在网络上自行搜索,会有很多教程出来的。

接下来,我们可以看到,如何导入数据的讲解:

首先需要导入pandas模块,按照老师的内容一步一步操作。

这里提醒大家刚开始学习的小白不要有太多概念定义的问题,比如“什么是pandas?”,“为什么我要先导入这个东西?”我不是提倡大家学习态度是睁一只眼闭一只眼,而是你刚接触的新事物,全新的世界里面只有你自己是陌生的,这个时候老师让你做什么你先照着coding,而且尽量多次、重复照着做。这和学英语需要培养语感是相似的。你做多了自然就明白,pandas其实就是一个程序开始就要导入的数据包,里面的数据在后面运行的时候需要用到,所以一般一开始就把它拖进来为下面的做铺垫。

下一句“%matplotlib inline”,同样的不需要完全明白是干嘛的,直接的提示就是上面那句文字补充,要是看不懂,请忽略,继续coding

我们之前把csv文件放在一起了,这里就可以直接用 stock=pd.read_csv 来导入文件,代表读取csv文件的命令,先输入文件名,然后是读取的设置:parse_dates=True是把日期在里面显示出日期时间的格式,index_col='Date'表示将Date作为下面的索引。这样一来,数据文件就存储在stock的变量中了。这时候就可以查看stock中变量存储的内容了

出现了DataFrame这样的数据框。

这是当数据不大的情况下可以看到所以导出的表格内容。要是数据巨大,而我们想要有效观察自己想要看到的数据的时候,以下就有很多命令行可以执行了。

看,以上我们用不同的命令行得出某些数据,头部数据的命令默认是5行,所以要是你需要看最后5行的数据,你是同样可以用 tail 这样的命令行来操作的。要是需要看具体的前X行或者后X行,只需要在后面加(X)。同样的,要是想要看整份数据的总体信息情况,用info就可以得到。

count是总值,mean是平均值,std是标准差。min和max中间的不同数据是最小值到最大值中间的量。

大家可以试试 stock.shape / stock.columns 等命令来看看能得到什么。这里需要知道的是后面的shape和columns都是属性,也就是不带括号。前面的head 和tail是有括号的,代表的是函数中对应的方法。

以上是我们用命令行得出数据的步骤,但很多人对数据的呈现并不是太有感觉,这个时候我们需要借助图像工具来把数据变得更加直观。

这里直接使用 stock.plot() 的命令语句,把上面stock表格中的每一列数据用折线图的形式表现出来。

但是因为数据太多太杂,其实真要分析起来也是挺懵逼的,所以我们可能会需要用到具体的数据用图形表现,比如我只想看到开盘价的曲线:

看到没,工具把 y='Open' 这个指令完成了,每段时间里面呈现的数量。非常清晰。

我们把绘图简单讲一下,其实大家对做图已经有基本的概念了。接下来补充的内容是在数据框的操作,比如要是你想在庞大的数据里面找到你想要找到的那个范围的数据,用的是索引和切片,应该能解决大部分你下那个要找到的范围:

用中括号[ ],或者直接用点号,后面加上列名 close,就能得到所有收盘价的数据了。要是你想要找到某一天收盘价的价格,也是可以实现的,在前面已经有的命令行中加上日期的索引,就能得到了。

同样的,要是你想要知道所有开盘价和收盘价的数据,你要输入什么呢?

再进一步,需要找到某一天开盘价和收盘价的价格,你要输入什么呢?

相信你可以成功输出这两个问题的正确答案的。

为了要达到相同的目的,我们还有其他的命令行可以选择,比如这样的:

和这样的:

注意到没有,这里两种不同命令行得出的结果是一样的。大家可以多试试其中的不同,也就是“.loc[]” 和 ".iloc[]" 两者的不同。到底对应需要输入的是行列数,还是相关属性呢?对照我们课堂上老师发的PPT,多联系几次,相信你会越来越熟练的。

上面是索引和切片,找到数据框中相应范围的数据。而有时候我们需要找到适合我们要求的范围的数据,在这里也是可以实现的。

比如,要得到数据中“成交量大于5千万”的数据,这里和上面的索引和切片不同的是,这里有不等式,而这个不等式是我们自己的想要的数据范围。我们先来看看,要是用最简单的筛选方式出来的结果是什么

这就是传说中的布尔类型了,很明显这不是我们真正想要的内容,但是从这里看出来布尔类型中可以看到true的值是我们想要的,也就是这里用了一个初步筛选,所有数据中成交量大于5千万的显示为“True”,没有达到范围的显示为“False”。

所以我们需要下一步的命令:

这个数据表格就是我们想要的了。

“成交量大于5千万”的数据,包括了符合数据的相关数据,开盘价/最高价/最低价等等。

这里你要仔细观察一样,得到布尔类型结果和真正想要的数据结果之间,命令行的变化,到底命令是哪里不一样。看清楚哦

好了,现在操盘手们想要看收盘价高于开盘价的数据,分析一下这段时间里面有哪几天股价单日在上涨的,也是用一样的套路:

所以到这里,你几乎是能进行下一步的过滤了,比如哪几天单日计算是在跌的,那几天成交量大于一个X千万。

来,看最后一个例子:

这就是我们本节课程的全部例子啦!

余老师嘱咐大家下课后一定要下载我们讨论区给出的课件资料进行练习,多改变里面的例子参数,看看结果有什么不一样。多联系几遍就能慢慢熟练了,小白同学也不要觉得难哦,熟能生巧,循序渐进!

这是我们这节课的作业:

虽然第一节课结束有大半个月了,我才发出第一篇

相关文章

网友评论

    本文标题:Python数据分析1——Python热身

    本文链接:https://www.haomeiwen.com/subject/vvxvqftx.html