如何七周成为数据分析师21:Python分析之numpy和pandas入门 2017-08-15 16:41 来源:人人都是产品经理 数据分析 原标题:如何七周成为数据分析师21:Python分析之numpy和pandas入门 本文是《如何七周成为数据分析师》的第二十一篇教程,如果想要了解写作初衷,可以先行阅读七周指南。温馨提示:如果您已经熟悉Python,大可不必再看这篇文章,或只挑选部分。 今天开始进入Python数据分析工具的教程。 数据分析绝对绕不过的三个包是numpy、scipy和pandas。numpy是Python的数值计算扩展,专门用来处理矩阵,它的运算效率比列表更高效。scipy是基于numpy的科学计算包,包括统计、线性代数等工具。pandas是基于numpy的数据分析工具,能更方便的操作大型数据集。后续的章节主要围绕pandas讲解。 numpy和pandas numpy的数据结构是n维的数组对象,叫做ndarray。Python的list虽然也能表示,但是不高效,随着列表数据的增加,效率会降低。 我们首先载入numpy包,因为它是第三方工具,所以每次使用前必须在代码中载入。as是命名为别名,方便调用,np是numpy约定俗成的简写。 创建数组使用numpy中的array函数,新手要记住加np。我们将系统自带的列表list转换成了numpy中的数组。 嵌套列表会被转换为一个多维数组,它也可以被称为矩阵。 array数组需要注意的是,它内部的元素必须为相同类型,比如数值或者字符串。可以用dtype查询其类型,不用加括号。 numpy的数据类型比较丰富,包括int8,int16,int32等,不过这块更接近计算机底层,数据分析用不太到。当我们想转换数据格式时,可以用astype函数。 数组的计算非常方便,不要大量的循环即可批量运算。 数组索引和列表相同,通过方括号和数字即可选择,也可直接赋值。 可以通过递归对多维数组进行筛选,如果省略了后面的索引,则返回次一级的维度,这一点和list一样。 numpy除了上述的基础操作之外,还有reshape、T转置、ufunc、sort等函数,功能强大,大家可以自行查阅文档学习,这里我不再花费时间讲解。对于数据分析师,pandas是一个更常用的包,在抽象概念上它更接近我们熟悉的excel和sql,也是最主要的分析工具。 pandas有两个主要的数据结构,Series和DataFrame,记住大小写区分,后续使用中不多提醒。Series类似于一维数组,和numpy的array接近,由一组数据和数据标签组成。数据标签有索引的作用。 加载pandas包,通过Series函数生成一个对象。我们很明显地看到,在jupyter上它的样式不同于array,它是竖着的。右边是我们输入的一组数据,左边是数据的索引,即标签。数据标签是pandas区分于numpy的重要特征。 索引不一定是从0开始的数字,它可以被定义。 索引的概念有点像SQL的主键,不过它的功能更强大,分析师能够很轻松的通过索引选取一个数据或者一组数据。 index函数可以显示Series的索引。Series和array一样,通过方括号选取数据,当要选取多个数据时,应该用列表表示多个索引,所以第三个案例嵌套了两层方括号。 如果数据是一个字典,也能直接通过这个字典创建Series。 此时,字典的key就是Series的索引。 Series有自动对齐索引的功能,当自定义的索引qinqin和字典队员不上时,j2直播,会自动选择NaN,即结果为空,表示缺失。缺失值的处理会在后续讲解。 DataFrame (责任编辑:本港台直播) |