1 python-数据描述与分析

数据描述与分析
在进行数据分析之前 , 我们需要做的事情是对数据有初步的了解,这个了解就涉及对行业的了解和对数据本身的敏感程度,通俗来说就是对数据的分布有大概的理解,此时我们需要工具进行数据的描述,观测数据的形状等;而后才是对数据进行建模分析,挖掘数据中隐藏的位置信息 。目前在数据描述和简单分析方面做的比较好的是Pandas库 。当然,它还需要结合我们之前提到的Numpy,Scipy等科学计算相关库才能发挥功效 。
1.Pandas 数据结构在进行Pandas相关介绍时我们首先需要知道的是Pandas 的两个数据结构(即对象)Series 和 DataFrame,这是Pandas的核心结构,掌握了此二者结构和属性要素,会在具体的数据处理过程中如虎添翼 。
1.1 Series 简介 Series 是一种类似于以为数据的对象,它由两部分组成,第一部分是一维数据,另外一部分是与此一维数据对应的标签数据 。具体如下:
import pandas as pdcenterSeries =pd.Series(["中国科学院","文献情报中心","大楼","北四环西路",])print (centerSeries)#output:0中国科学院1文献情报中心2大楼3北四环西路dtype: object因为我们没有指定它的标签数据,而python默认是通过数字排序进行标识 , 接下来给他添加标示数据,具体如下:
centerSeries =pd.Series(["中国科学院","文献情报中心","大楼","北四环西路",],index=["a","b","c","d"])print (centerSeries) #index的size和Series的size必须一样长,否则报错#output:a中国科学院b文献情报中心c大楼d北四环西路dtype: object对比之前的默认标识,我们可以看出它由1,2,3,4变成了a,b,c,d 。接下来将解释这样标识的意义,具体如下:
import pandas as pdcenterSeries =pd.Series(["中国科学院","文献情报中心","大楼","北四环西路",],index=["a","b","c","d"])print (centerSeries[0])#通过一维数组进行获取数据print (centerSeries[1])print (centerSeries["c"])#通过标识index获取数据print (centerSeries["d"])#output:中国科学院文献情报中心大楼北四环西路另外,我们可以看到通过一维数组格式获取数据和通过index标识获取数据都可以 , 这样的index就像曾经学过的数据库中的id列的作用,相当于建立了每个数据的索引 。当然,针对Series的操作不只限于此,还有很多需要我们自己去通过“help”查看得到的 。
1.2 DataFrame 简介DataFrame 是一个表格型的数据结构 , 它包含有列和行的索引,当然你也可以把它看作是由Series组织成的字典 。需要说明的是,DataFrame的每一列中不需要数据类型相同,且它的数据是通过一个或者多个二维块进行存放,在了解DataFrame之前如果读者对层次化索引有所了解,那么DataFrame 可能相对容易理解,当然如果读者并不知道何谓层次化索引也没关系 , 举个例子:他类似于常见的excel的表格格式,可将它理解为一张excel表 , 具体如下:
#简单的DataFrame 制作#字典格式的数据data = https://www.huyubaike.com/biancheng/{"name":["国科图","国科图","文献情报中心","文献情报中心"],"year":["2012","2013","2014","2015"],"local":["北四环西路","北四环西路","北四环西路","北四环西路"],"student":["甲","乙","丙","丁"]}centerDF = pd.DataFrame(data)print(centerDF)#output: nameyearlocal student0国科图2012北四环西路甲1国科图2013北四环西路乙2文献情报中心2014北四环西路丙3文献情报中心2015北四环西路丁#调整列的顺序data = https://www.huyubaike.com/biancheng/{"local":["北四环西路","北四环西路","北四环西路","北四环西路"],"name":["国科图","国科图","文献情报中心","文献情报中心"],"year":["2012","2013","2014","2015"],"student":["甲","乙","丙","丁"]}centerDF = pd.DataFrame(data,columns=["year","name","local","student"])print(centerDF)#output:yearnamelocal student02012国科图北四环西路甲12013国科图北四环西路乙22014文献情报中心北四环西路丙32015文献情报中心北四环西路丁#更改index的默认设置data = https://www.huyubaike.com/biancheng/{"name":["国科图","国科图","文献情报中心","文献情报中心"],"year":["2012","2013","2014","2015"],"local":["北四环西路","北四环西路","北四环西路","北四环西路"],"student":["甲","乙","丙","丁"]}centerDF = pd.DataFrame(data,columns=["year","name","local","student"],index=["a","b","c","d"])print(centerDF)#output:yearnamelocal studenta2012国科图北四环西路甲b2013国科图北四环西路乙c2014文献情报中心北四环西路丙d2015文献情报中心北四环西路丁既然DataFrame 是行列格式的数据 , 那么理所当然可以通过行、列的方式进行数据获?。戳薪惺菥莼袢? ,具体如下:

推荐阅读