python数据统计与分析,Python统计数据

  python数据统计与分析,Python统计数据

  写这篇文章的目的是了解Python数据处理的基本步骤,计算美国各州的人口密度。数据来源是https://github.com/jakevdp/data-USstates/.

  ,共3个数据表:state-population.csv,state-areas.csv,state-abbrevs.csv

  数据描述:

  人口表state-population.csv字段state/regionagesyearpopulation描述州/地区人口年龄年份人口数备注显示为各州的简称,对应state-abbrevs.csv文件中的简称,包括18岁以下,Statearea (sq。mi)在所有年龄组的state-areas.csv字段等。表示区域区域备注的全名,对应于state-abbrevivs.csv文件中的state字段,区域表state-abbrevivs.csv字段state缩写描述区域(每个州的名称)每个州的名称称为备注的全名,对应于state-areas.csv文件中的state字段和state-population.csv文件中的state/region字段。环境:在anaconda集成环境中使用Spyder软件,打开软件,先新建一个项目(projects),然后所有操作都在项目中实现。创建项目适用于大型项目。这只是一个小的数据处理项目,或者您可以选择不创建项目。

  1.读入数据

  语句是:pd.read_csv(文件路径)。语句很简单,但最重要的是要注意文件路径。以本文为例说明一些注意事项。

  边肖的文件路径是:E:\ data \ data-US States-master \ state-population . CSV,是直接在电脑上复制的文件地址;

  Python的路径格式是:E://data//data-US States-master//state-population . CSV,意思是将 \ 改为//。当然也可以写成:R e:/data/data-US States-master/state-population。

  它看起来相当麻烦,因为这是一个绝对路径,适用于数据文件和运行文件。py不在同一个文件夹中。

  很多时候我们会考虑使用相对路径,这样我们一般把数据文件和。工作目录中的py文件。例如,在。边肖的py文件在目录E:\ data \ data-US States-master \ US state _ data,所以读取相对路径可以写成:r ./state-population.csv ,其中./的意思是回到上层。

  观察数据

  使用的数据观测函数有df.head()、df.describe()、df.tail()、len(df)等。其中head()和tail()分别显示前10个数据和后10个数据,describe()显示数值型数据的基本统计信息,包括总数据行(和len(df)的统计结果

  3.数据处理

  数据处理包括:数据合并、缺失值处理、异常值处理、数据插值等。具体处理方式要看数据。

  本文讨论数据合并和缺失值的基本处理。

  三个数据文件分别存储为数据帧,由字段说明。发现三个数据文件之间存在成对关系,然后将三个数据文件合并。

  Code: pd.merge (left,right,how= inner ,on=none,left _ on=none,right _ on=none,left _ index=false,right _ index=false,sort=false,suffixes=(_ x , _ y

  参数描述:

  左:数据框

  右侧:数据框

  如何:{ 左,右,外,内 },默认为内

  * left:只使用左表的键,类似于SQL的左外连接,键的顺序保留。

  * right:只使用右表中的键,类似于SQL的右连接,保持键的顺序。

  * outer:保留两个表的所有键,类似于SQL的完全连接。

  * inner:取左右键不重合的部分,类似于SQL的inner join,保持左表中键的顺序。

  On:标签或列表(列表中有多个标签),一般指列名。

  Left_on:左表的连接列名、列表或数组,适用于左右表的连接列名不同的情况,与right_on结合使用。

  Right_on:右表的连接列名、列表或数组,与left_on一起使用。

  Left_index: Boolean类型,默认值为False,适用于左右表公共属性为index的情况。

  right _ index:Boolean;默认值为False。

  Sort: Boolean,默认值为False,主要对连接的结果集按字母顺序进行排序。

  后缀:当输出结果中有两个重复的列名时,该参数定义后缀。

  删除重复的行代码:df.drop(列名,轴=0/1)

  (1)合并数据,先合并人口表和地区表的数据。

  Merged=pd.merge (pop,缩写,how= outer ,left _ on= state/region ,right _ on= abbreviation )merged=merged . head()(2 abbreviation ,axis=1) # axis=1可以直接写成1。

  使用df.isnull()。any()函数检查是否有缺失值及其所在的列,并发现state和population中有缺失值。考虑到名字缩写不匹配的可能性,检查缺失的数据源,使用merged.loc [merged [state]。isnull(),州/地区]。unique(),代码如下:

  Merged.isnull()。any() #返回类型是bool类型merged [merged [population]。isnull ()]。head()merged . loc[merged[ state ]。isnull(),州/地区]。unique()merged.loc[merged[州/地区]= PR ,州]=波多黎各 merged.loc[merged[州/地区]=美国,州]=美国 merged.isnull()。Any()然后合并状态区域表的数据,将每个状态的区域添加到目标数据表中,观察并处理目标表数据的缺失值。代码如下:

  final=pd.merge(merged,areas,on=state ,How= left )final . head()final . is null()。Any()最终[ state ][最终[area (sq.mi)]。isnull ()]。unique () #查找区域数据为空的区域,判定只需要唯一值#参数补充说明,Df.dropna()删除缺失的数据,inplace=true表示数据正在被修改,no new object #inplace=False表示数据正在被修改。创建并返回一个新对象,即result #subset,并用列名final设置列。dropna (inplace=true) final。Head () (3)计算2010年各年龄段的状态。

  使用query()查询数据,set_index()函数设置索引的名称。代码如下:

  data 2010=final . query( year==2010 ages== total )data 2010 . head()data 2010 . set _ index( state ,In=true)density=data 2010[ population ]/data 2010[ area(sq . mi)]density . sort _ values(ascending=false,In place=true)density . head()density . tail()本文使用

  导入熊猫作为警察局导入数组作为np#该文件的路径为:E:\ data \ data-美国各州-master \ state-population。CSV # Python路劲语法格式为:E://data//data-us States-master//state-population。CSV #也可以写为:r e:/data/data-us States-master/state-population。CSV #由于本文件创建了项目,所以可以替换为r ./state-population.csv#同理,如果数据文件和。巴拉圭运行文件在同一文件夹下,可以直接读取#在文件夹中的上一个文件夹中则用./表示回到上一层pop=pd.read_csv(r ./州-人口。CSV’)面积=PD。read _ CSV(r ./州-地区。缩写为PD。read _ CSV(r ./state-abbrevs.csv)#观察数据,复杂数据可以用到形容函数,格式同I描述()打印(流行。head());打印(区域。head());print(abbrevs.head())#合并数据merged=pd.merge(pop,abbrevs,how=outer ,left_on=state/region ,right _ on= abbreviation )merged=merged。drop(缩写,轴=1)#轴=1可以直接写为1,且轴为必要参数,必须指定merged.head()#检验缺失数据,即对每一列进行检验merged.isnull().any() #返回类型为弯曲件类型合并的[合并的[人口]。isnull()].head()已合并。合并的州.isnull(),州/地区]。unique()merged.loc[merged[州/地区]= PR ,州]=波多黎各merged.loc[merged[州/地区]=美国,州]=美国merged.isnull().any()final=pd.merge(merged,areas,on=state ,how= left )final。head()final。为null().任何()最终[ state ][最终[面积(平方。mi)].isnull()].唯一()#查找面积数据为空的地区,并且只需要唯一值进行确定#参数补充说明,df.dropna()删除缺失的数据,inpalce=True表示在修改数据,不创建新的对象#inplace=False表示修改数据,创建并返回新的对象即结果#子集,设置去除空值的列,里面是列名最终。dropna(原地=真)final。head()数据2010=最终数据。查询( year==2010 ages== total )数据2head()数据2010年。set _ index( state ,in place=True)密度=data 2010[ population ]/data 2010[ area(sq .mi)]密度。sort _ values(升序=False,原地=True)密度。头()密度。尾部()

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: