《(本科)(01)第1章数据与Python语言(Py1)ppt课件.pptx》由会员分享,可在线阅读,更多相关《(本科)(01)第1章数据与Python语言(Py1)ppt课件.pptx(69页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、课程主讲人:(01)第1章 数据与Python语言(Py1)第 1 章1 - 2统计学Python实现贾俊平2022-5-132022-5-13PythonPython 实现实现第 1 章1 - 3统计学Python实现贾俊平2022-5-132022-5-13第 1 章1 - 4统计学Python实现贾俊平2022-5-132022-5-13 统计学统计学收集、处理、分析、解释数据并从数据中得出结论的科学 数据与统计学 什么是统计学什么是统计学描述性方法描述性方法研究数据收集、整理和描述的统计学方法描述数据特征,找出数据的基本规律内容包括:数据收集、处理、展示、描述性分析推断性方法推断性方法
2、研究如何利用样本数据来推断总体特征的统计学方法对总体特征作出推断内容包括:参数估计和假设检验第 1 章1 - 5统计学Python实现贾俊平2022-5-132022-5-13l 变量变量(variable)(variable)观察一个企业的销售额,这个月和上个月不同;观察股票市场上涨股票的家数,今天与昨天数量不一样;观察一个班学生的生活费支出,一个人和另一个人不一样;投掷一枚骰子观察其出现的点数,这次投掷的结果和下一次也不一样“企业销售额”、“上涨股票的家数”、“生活费支出”、“投掷一枚骰子出现的点数”等就是变量l 数据数据(data)(data)变量的观测结果 数据与统计学 变量和数据变量
3、和数据变量的基本分类变量的基本分类类别变量类别变量(定性变量)(定性变量)无序类别变量无序类别变量(名义值)(名义值)有序类别变量有序类别变量(顺序值)(顺序值)数值变量数值变量(定量变量)(定量变量)离散变量离散变量(有限值)(有限值)连续变量连续变量(无限制)(无限制)第 1 章1 - 6统计学Python实现贾俊平2022-5-132022-5-13l二手数据二手数据l抽取样本抽取样本总体(population):包含所研究的全部个体(或数据)的集合样本(sample):从总体中抽取的一部分元素的集合样本量(sample size):构成样本的元素的数目l概率抽样方法概率抽样方法根据已知
4、的概率抽取样本元素,也称随机抽样 数据与统计学 数据来源数据来源l简单随机抽样简单随机抽样从总体N个单位(元素)中随机地抽取n个单位作为样本,使得总体中每一个元素都有相同的机会(概率)被抽中 抽取元素的具体方法有放回抽样和无放回抽样l分层抽样分层抽样将总体单位按某种特征或规则划分为不同层,再从不同的层中随机地抽取样本l系统抽样系统抽样将总体中的所有单位(抽样单位)按一定顺序排列,在规定的范围内随机地抽取一个单位作为初始单位,然后按事先规定好的规则确定其他样本元素l整群抽样整群抽样将总体中若干个单位合并为组(群),抽样时直接抽取群,再对中选群中的所有单位全部实施调查第 1 章1 - 7统计学Py
5、thon实现贾俊平2022-5-132022-5-13 Python的初步使用 PythonPython的下载与安装的下载与安装第 1 章1 - 8统计学Python实现贾俊平2022-5-132022-5-13 Python的初步使用 PythonPython的安装的安装 打开IDEL 在提示符“”后输入命令代码 每次可以输入一条命令,也可以连续输入多条命令,命令之间用分号“ ;”隔开 命令输入完成后,按“Enter”键,Python软件就会运行该命令并输出相应的结果第 1 章1 - 9统计学Python实现贾俊平2022-5-132022-5-13Anaconda包含了多个基本模块,如nu
6、mpy,pandas,matplotlib,IPython等,安装Anaconda时,这些模块也就一并安装好了,Anaconda还内置了Jupyter Notebook开发环境,十分方便代码的编写和修改Anaconda包含了Python,直接安装即可,无序安装Python本书代码编写和运行使用的就是Anaconda平台的Jupyter Notebook界面 Python的初步使用 PythonPython的安装的安装第 1 章1 - 10统计学Python实现贾俊平2022-5-132022-5-13 Python的初步使用 PythonPython的安装的安装第 1 章1 - 11统计学Py
7、thon实现贾俊平2022-5-132022-5-13 Python的初步使用 使用使用Jupyter NotebooJupyter Noteboo编写代码编写代码l 在 i n 后 的 代 码 框 ( 称 为“cell”)中可输入代码。点击“运 行 ” 按 钮 或 使 用 组 合 键,即可运行该代码,运行结果会在代码块的下面显示,其中out 内的数字表示第几次运行输出l 要增加新的代码编辑框,可以点击“+”或“Insert”,可以在上方或下方增加代码编辑框,即可继续编写代码第 1 章1 - 12统计学Python实现贾俊平2022-5-132022-5-13l要保存编写的代码,常用的有两种格
8、式:一种是Jupyter Notebook的专属文件格式,另一种是Python 格式l要保存成Jupyter Notebook格式,在文件界面中点击file菜单,选择Save and Checkpoint,文件会自动保存在默认路径下,文件的扩展名为ipynbl如果要保存在自己的文件夹中,可以在桌面上先建立一个文件夹,比如,Python_code,进入Jupyter Notebook后,点击“Desktop”就能显示你的文件夹Python_code,点击该文件夹,并点击右上角的New按钮,选择Python3,即可以创建一个Python文件,这个文件就会自动保存至文件夹Python_code中l要
9、保存成Python文件,点击file菜单,选择Download as下的Python(.py),文件会自动保存在默认路径下 Python的初步使用 使用使用Jupyter NotebooJupyter Noteboo编写代码编写代码第 1 章1 - 13统计学Python实现贾俊平2022-5-132022-5-13l该界面类似于Rstudiol在Windows开始窗口找到点后在子目录中找到Spyder,点击后即可打开Spyder界面lSpyder界面由多个窗格组成,使用者可根据需要调整位置和大小 Python的初步使用 AnacondaAnaconda的另一个界面的另一个界面第 1 章1 -
10、 14统计学Python实现贾俊平2022-5-132022-5-13lPython中的模块(module)或称为库(package)是指包含Python类、函数等信息的集合,可以看作一个工具包l大部分统计分析和绘图都可以使用已有的Python模块中的函数来实现l一个Python模块中可能包含多个函数,能做多种分析和绘图,对于同一问题的分析或绘图,也可以使用不同模块中的函数来实现,用户可以根据个人需要和偏好选择所用的模块。模块的下载与安装可以在Python中进行,也可以在Anaconda中进行,这取决于你使用是操作平台或环境l在最初安装Python软件时,自带了一序列内置模块,如time,ra
11、ndom,sys,os,json,pickle,shelve,xml,re,logging等l除内置模块外,Python还提供了丰富的开源的第三方模块,统计常用的模块有数值计算模块numpy,数据处理模块pandas,作图模块matplotlib,统计计算模块statistics,统计建模模块statsmodelsl内置模块与第三方模块都需要导入这些模块才能使用其中的函数 Python的初步使用 模块的安装与加载模块的安装与加载第 1 章1 - 15统计学Python实现贾俊平2022-5-132022-5-13lpip工具是Python自带的第三方安装工具,在python安装过程中已经安装完
12、成,无需独立安装。如果安装Python时成功将其加入PATH,就可以在操作系统终端直接使用pip install命令安装第三方模块。Windows系统的操作是,同时按下电脑上的win+R键,在左下角弹出的运行窗口输入“cmd”即可打开终端。MacOS直接打开Terminal即可l使用Anaconda中的conda进行包的管理和环境管理。安装模块需要在Aandonda Prompt中输入命令。点击Windows的“开始”按钮,在Anaconda点击Aandonda Prompt,在打开的界面中输入安装命令即可完成安装。比如,要安装模块pandas,输入conda install 即可完成安装 P
13、ython的初步使用 模块的安装与加载模块的安装与加载第 1 章1 - 16统计学Python实现贾俊平2022-5-132022-5-13 Python的初步使用 查看帮助文件查看帮助文件第 1 章1 - 17统计学Python实现贾俊平2022-5-132022-5-13 Python的初步使用 编写代码脚本编写代码脚本第 1 章1 - 18统计学Python实现贾俊平2022-5-132022-5-13 Python的初步使用 变量命名变量命名l1. 标识符可以由字母、数字、下画线(_)组成,其中数字不能打头。字母并不局限于 26 个英文字母,可以包含中文字符等。l2. Python语言
14、区分大小写,因此 abc 和 Abc 是两个不同的标识符。l3. 标识符不能包含空格。l另外,Python有33个关键字,如表1-1所示。这些关键字在语法中有特定的含义和功能,不能作为变量名andanddeldelglobalglobalnonlocnonlocalalwhilewhileasaselifelifififnotnotwithwithassertassertelseelseimportimportororyieldyieldbreakbreakexpectexpectininpasspassFALSEFALSEclassclassfinallfinally yisisraiser
15、aiseTRUETRUEcontincontinueueforforlambdalambdareturnreturndefdeffromfromNoneNonetrytry第 1 章1 - 19统计学Python实现贾俊平2022-5-132022-5-13l ython3中有6种基本的数据结构或称数据类型,分别是数字数字(number)、字字符串符串(string)、元组元组(tuple)、列表列表(list)、字典字典(dictionary)、集合(set),这6种数据类型通过不同的组成方式和定义可以产生更多的类型l 使用内置函数type()可以查看数据的类型 PythonPython的数
16、据处理的数据处理 PythonPython的基本数据结构的基本数据结构第 1 章1 - 20统计学Python实现贾俊平2022-5-132022-5-13数字数字l数字用于储存数值。Python3支持4种类型的数字,即int(整数类型)、float(浮点类型,即取小数的数字)、bool(布尔类型,是只取True和False两个值的逻辑型数字,也可以用0和1表示)、complex(复数类型)字符串字符串l由数值、字母、下划线组成的遗传字符。可以使用单引号( )、双引号( )或三引号( )指定字符串,使用“+”连接两个字符串元组元组l元组是一维序列,其定长是固定的、不可变的,内容不能修改,通常用
17、“( )”标识,元素之间用“,”分隔 PythonPython的数据处理的数据处理 PythonPython的基本数据结构的基本数据结构第 1 章1 - 21统计学Python实现贾俊平2022-5-132022-5-13列表列表l 列表也是一维序列,与元组不同的是其长度是可变的,它所包含的内容也可以进行修改l 列表中的元素可以是相同类型,也可以是不同类型,元素之间用逗号分隔,使用中括号“ ”或list类型函数可以创建列表 PythonPython的数据处理的数据处理 PythonPython的基本数据结构的基本数据结构列表列表第 1 章1 - 22统计学Python实现贾俊平2022-5-1
18、32022-5-13 PythonPython的数据处理的数据处理 PythonPython的基本数据结构的基本数据结构列表列表创建列表创建列表第 1 章1 - 23统计学Python实现贾俊平2022-5-132022-5-13 PythonPython的数据处理的数据处理 PythonPython的基本数据结构的基本数据结构列表列表列表的操作列表的操作第 1 章1 - 24统计学Python实现贾俊平2022-5-132022-5-13字典字典l 字典是Python最重要的内置结构之一,它是大小可变的键值对集,其中键(key)和值(value)都是Python对象l 字典中的元素用大括号
19、括起来,用“:”分割键和值,不同的键值组合之间用“,”分隔l 用大括号“ ”或dict函数可以创建字典,其形式如下:dictionary=key1:value1,key2:value2, # 或者写成:dictionary=dict(key1=value1,key2=value2,)l 与列表类似,字典也有很多操作方法 PythonPython的数据处理的数据处理 PythonPython的基本数据结构的基本数据结构字典字典第 1 章1 - 25统计学Python实现贾俊平2022-5-132022-5-13 PythonPython的数据处理的数据处理 PythonPython的基本数据结构
20、的基本数据结构字典字典字典的操作字典的操作第 1 章1 - 26统计学Python实现贾俊平2022-5-132022-5-13集合集合l 集合是由唯一元素组成的无序集,可看成是只有键没有值的字典l 集合中的元素是无序的,不记录元素的位置,因此不支持索引、切片等类似序列的操作,只能遍历或使用in、not in等访问或判断集合元素l 使用set()函数或大括号“ ”的方式等可以创建集合,一个空集合必须使用set()创建 PythonPython的数据处理的数据处理 PythonPython的基本数据结构的基本数据结构集合集合第 1 章1 - 27统计学Python实现贾俊平2022-5-1320
21、22-5-13 PythonPython的数据处理的数据处理 PythonPython的基本数据结构的基本数据结构集合集合集合的操作集合的操作第 1 章1 - 28统计学Python实现贾俊平2022-5-132022-5-13数组数组lnumpy是numerical python的简称,它是Python中数值计算的最重要的基础模块。其他一些模块也都提供了基于numpy的函数功能ln维数组(ndarray)是numpy模块中定义的对象,它可以是一维、二维和多维,数组中元素类型是数值型ln维数组由实际数据和描述这些数据的元数据(数据维度,数据类型等)组成,一般要求所有元素类型相同,数组下标从0开
22、始l一维数组就是通常所说的向量(vector),二维数组就是通常所说的矩阵。可以通过构造函数array创建n维数组,也可以使用numpy中的其他函数如arange函数、ones函数以及zeros函数等创建n维数组 PythonPython的数据处理的数据处理 numpynumpy中的数组中的数组第 1 章1 - 29统计学Python实现贾俊平2022-5-132022-5-13 PythonPython的数据处理的数据处理 numpynumpy中的数组中的数组数组的操作数组的操作a1: 5 4 1 2 3a1: 5 4 1 2 3a2: 0 1 2 3 4 5 6 7 8 9a2: 0 1
23、2 3 4 5 6 7 8 9a3: 2. 2.5 3. 3.5 4. 4.5 5. 5.5a3: 2. 2.5 3. 3.5 4. 4.5 5. 5.5array(1, 2,array(1, 2, 3, 4, 3, 4, 5, 6) 5, 6)第 1 章1 - 30统计学Python实现贾俊平2022-5-132022-5-13 PythonPython的数据处理的数据处理 numpynumpy中的数组中的数组数组的操作数组的操作array( 0, 1, 2, 3,array( 0, 1, 2, 3, 4, 5, 6, 7, 4, 5, 6, 7, 8, 9, 10, 11) 8, 9, 1
24、0, 11)注:注:intint表示整数,如表示整数,如int32int32表示表示3232数位整数;数位整数;int64int64表示表示6464数位整数。数位整数。floatfloat表示浮点数,如表示浮点数,如float32float32(代码:(代码:f4f4或或f f)表示标准单精度浮点数;)表示标准单精度浮点数;float64float64(代码:(代码:f8f8或或d d)表示标准双精度浮点数;)表示标准双精度浮点数;float128float128(代码:(代码:f16f16或或g g)表示拓)表示拓展精度浮点数。展精度浮点数。第 1 章1 - 31统计学Python实现贾俊平
25、2022-5-132022-5-13序列序列lpandas是Python中的核心数据分析库,它提供了两种数据结构,即序列(serise)和数据框(data frame)。这里主要介绍序列和数据框的创建及其一些简单操作l序列类似于一维数组,不同的是它由索引(ndex)和一维数值(values)组成l序列可以储存整数、浮点数、字符、Python对象等多种类型的数据,但一个序列最好只存储一种类型的数据,若存在多种数据类型,该序列的类型会自动转换成对象(object)l使用构造函数Series函数可创建序列,使用前需要导入pandas库 PythonPython的数据处理的数据处理 pandaspan
26、das中的序列和数据框中的序列和数据框序列序列第 1 章1 - 32统计学Python实现贾俊平2022-5-132022-5-13 PythonPython的数据处理的数据处理 pandaspandas中的序列和数据框中的序列和数据框序列序列创建序列创建序列第 1 章1 - 33统计学Python实现贾俊平2022-5-132022-5-13 PythonPython的数据处理的数据处理 pandaspandas中的序列和数据框中的序列和数据框序列序列序列的操作序列的操作类型:类型: Index(a, b, c, d, dtype=object) Index(a, b, c, d, dtyp
27、e=object)数据:数据: 5 8 7 6 5 8 7 6类型:类型: int64 int64我是索引我是索引a 5a 5b 8b 8c 7c 7d 6d 6Name: Name: 我是一个我是一个pandaspandas的的Series, dtype: int64Series, dtype: int64我是索引我是索引a 5.0a 5.0b 8.0b 8.0c 7.0c 7.0d 6.0d 6.0Name: Name: 我是一个我是一个pandaspandas的的Series, dtype: float64Series, dtype: float64我是索引我是索引a 5.0a 5.0b
28、 2.0b 2.0c 7.0c 7.0d 8.0d 8.0Name: Name: 我是一个我是一个pandaspandas的的Series, dtype: float64Series, dtype: float64第 1 章1 - 34统计学Python实现贾俊平2022-5-132022-5-13 PythonPython的数据处理的数据处理 pandaspandas中的序列和数据框中的序列和数据框序列序列序列的操作序列的操作a 6.0a 6.0b NaNb NaNc 9.0c 9.0d NaNd NaNe NaNe NaNdtype: float64dtype: float64累加累加:
29、: a 1.0a 1.0b 3.0b 3.0c 6.0c 6.0d 10.0d 10.0e 15.0e 15.0dtype: float64dtype: float64总和总和 = 15.0 = 15.0平均数平均数 = 3.0 = 3.0第 1 章1 - 35统计学Python实现贾俊平2022-5-132022-5-13数据框数据框l数据框是Pandas中的另一个重要数据结构,它是一种表格结构的数据,类似于Excel中的数据表,也是较为常见的数据形式l数据框实际上是带标签的二维数组,一个数据框由行索引(index)、列索引(columns)和二维数据(values)组成l数据框的每一列和每
30、一行都是一个序列l为了便于分析,一般要求数据框一列只存储一种类型的数据 PythonPython的数据处理的数据处理 pandaspandas中的序列和数据框中的序列和数据框数据框数据框第 1 章1 - 36统计学Python实现贾俊平2022-5-132022-5-13 PythonPython的数据处理的数据处理 pandaspandas中的序列和数据框中的序列和数据框数据框数据框创建数据框创建数据框姓名姓名统计学统计学数学数学经济学经济学刘文涛刘文涛686885858484王宇翔王宇翔858591916363田思雨田思雨747474746161徐丽娜徐丽娜88881001004949丁文
31、彬丁文彬636382828989一个数据框使用字典创建数据框第 1 章1 - 37统计学Python实现贾俊平2022-5-132022-5-13 PythonPython的数据处理的数据处理 pandaspandas中的序列和数据框中的序列和数据框数据框数据框数据框的操作方法数据框的操作方法方法方法描述描述示例示例columnscolumns查看所有列名(列索引)查看所有列名(列索引)df.columnsdf.columnsdtypesdtypes查看所有元素的类型查看所有元素的类型df.dtypesdf.dtypesheadhead查看前查看前n n行数据(默认前行数据(默认前5 5行)行
32、)df.head(3)df.head(3)indexindex查看所有行名(行索引)查看所有行名(行索引)df.indexdf.indexinfoinfo查看数据结构(索引、数据类型等)查看数据结构(索引、数据类型等)df.infodf.infoshapeshape查看行数和列数(行,列)查看行数和列数(行,列)df.shapedf.shapeT T数据框的行列转置数据框的行列转置df.Tdf.Ttailtail查看后查看后n n行数据(默认后行数据(默认后5 5行)行)df.tail(3)df.tail(3)valuesvalues查看所有元素的值查看所有元素的值df.valuesdf.va
33、lues第 1 章1 - 38统计学Python实现贾俊平2022-5-132022-5-13 PythonPython的数据处理的数据处理 pandaspandas中的序列和数据框中的序列和数据框数据框数据框数据框的常用操作数据框的常用操作第 1 章1 - 39统计学Python实现贾俊平2022-5-132022-5-13 PythonPython的数据处理的数据处理 pandaspandas中的序列和数据框中的序列和数据框数据框数据框数据框的排序与合并数据框的排序与合并数据框排序数据框排序l使用sort_values()方法可以对数据框的某一列排序,函数默认参数ascending=Tru
34、e,即升序排列,需要降序时,可设置参数ascending=Falsel也可以按照索引排序,使用sort_index()方法,参数axis默认为0,按照行索引对行排序,设置axis=1即按照列索引对列排序,默认升序第 1 章1 - 40统计学Python实现贾俊平2022-5-132022-5-13 PythonPython的数据处理的数据处理 pandaspandas中的序列和数据框中的序列和数据框数据框数据框数据框的排序与合并数据框的排序与合并数据框合并数据框合并l如果需要合并不同的数据框,使用concat函数。函数默认参数axis为0(默认的参数设置可以省略不写),表示将不同的数据框按行合
35、并,设置axis=1将不同的数据框按列合并l按行合并时,数据框中的列索引必须相同,按列合并时,数据框中的行索引必须相同,否则合并是没有意义的姓名姓名统计学统计学数学数学经济学经济学李志国李志国787884845151王智强王智强909078785959宋丽媛宋丽媛80801001005353袁芳芳袁芳芳585851517979张建国张建国636370709191第 1 章1 - 41统计学Python实现贾俊平2022-5-132022-5-13 PythonPython的数据处理的数据处理 pandaspandas中的序列和数据框中的序列和数据框数据框数据框数据框的应用函数数据框的应用函数输
36、出数据框的主要描述统计量输出数据框的主要描述统计量df.describe()df.describe()返回每一列中非空值的个数返回每一列中非空值的个数df.count()df.count()返回每一列的和(无法计算时返回空值)返回每一列的和(无法计算时返回空值)df.sum()df.sum()返回每一列的最大值返回每一列的最大值df.max()df.max()返回每一列的最小值返回每一列的最小值df.min()df.min()返回最大值所在的自动索引位置返回最大值所在的自动索引位置df.argmax()df.argmax()返回最小值所在的自动索引位置返回最小值所在的自动索引位置df.argm
37、in()df.argmin()返回最大值所在的自定义索引位置返回最大值所在的自定义索引位置df.idxmax()df.idxmax()返回最小值所在的自定义索引位置返回最小值所在的自定义索引位置df.idxmin()df.idxmin()返回每一列的平均值返回每一列的平均值df.mean()df.mean()返回每一列的中位数返回每一列的中位数df.median()df.median()返回每一列的方差返回每一列的方差df.var()df.var()返回每一列的标准差返回每一列的标准差df.std()df.std()第 1 章1 - 42统计学Python实现贾俊平2022-5-132022-
38、5-13 PythonPython的数据处理的数据处理 随机数和随机抽样随机数和随机抽样生成随机数生成随机数生成随机数生成随机数l使用第三方模块numpy中的random子模块可以同时生成多个随机数,还能组成不同形状的随机数数组l由于是随机生成,每次运行会得到不同的随机数。要想每次运行都产生相同的一组随机数,可在生成随机数之前使用函数seed()设定随机数种子。可在括号内可输入任意数字# 生成不同分布的随机数(每种分布产生5个)import numpy.random as nprnpr.seed(15) # 设定随机数种子r1=npr.standard_normal(5) # 标准正态分布r2
39、=50 + 5 * npr.standard_normal(5) # 均值为50、标准差为5的正态分布r3=npr.uniform(low=0, high=10, size=5) # 010之间的均匀分布r4=npr.chisquare(df=15, size=5) # 自由度为15的卡方分布print(# 标准正态分布:,n,r1,n# 值为50、标准差为5的正态分布:,n,r2, n# 010之间的均匀分布:,n,r3,n# 自由度为15的卡方分布:,n,r4)第 1 章1 - 43统计学Python实现贾俊平2022-5-132022-5-13 PythonPython的数据处理的数据处
40、理 随机数和随机抽样随机数和随机抽样数据抽样数据抽样数据抽样数据抽样l使用random模块中的sample函数可以从一个已知的数据集中无放回抽样l使用chioces函数可以进行有放回抽样# 抽取随机样本import randoma = range(1, 21) # 120的数值序列random.seed(10)n1 = random.sample(population=a, k=10); n1 # 无放回抽取10个数据n2 = random.choices(population=a, k=10); n2 # 有放回抽取10个数据Ncols = black,red,green,blue,yell
41、ow # 5种不同的颜色列表ncols=random. choices(Ncols, k=6); ncols # 有放回抽取8个颜色print(# 无放回抽取:,n,n1,n# 有放回抽取:,n,n2, n# 有放回抽样6种颜色:,n,ncols)第 1 章1 - 44统计学Python实现贾俊平2022-5-132022-5-13 PythonPython的数据处理的数据处理 随机读取和保存随机读取和保存读取外部数据读取外部数据数据读取数据读取l使用pandas库中的read_csv函数可以将csv格式数据读入到Python环境中。函数默认参数header=infer,即读取的csv数据将第
42、一行作为标题(即列索引l如果数据中没有标题,可以使用Names参数手动设置,如果数据标题不是从第一行开始,可以使用header参数确定标题行注:读取csv格式数据时,需要设置参数encoding=gbk,也就是指定编码格式。因为Python的默认编码格式为“UTF-8”。而我们将Excel文件另存为csv格式时,默认的编码格式为“GBK”,因此,读取csv格式数据时需要指定编码格式为“GBK”,与原文件的编码格式一致,否则系统会报错。第 1 章1 - 45统计学Python实现贾俊平2022-5-132022-5-13 PythonPython的数据处理的数据处理 随机读取和保存随机读取和保存
43、数据保存数据保存数据保存数据保存l在Python环境中录入新数据,或者读入的是已有的数据,想要将数据以特定的格式保存在指定的路径中,则先要确定保存成何种格式l如果想将数据框保存成csv格式,则数据文件的后缀必须是csv,可以使用数据框的to_csv方法。如果要将数据保存成xlsx格式,则数据文件的后缀必须是xlsx,可以使用数据框的to_excel方法# 将数据保存成csv格式,并存放在指定的路径中import pandas as pdtable1_1.to_csv(C:/pydata/chap01/df1.csv,index=False, encoding=utf-8)# 将table保存在
44、指定的目录下,并取名为df1。编码格式为utf-8# 将数据保存成xlsx格式,并存放在指定的路径中table1_1.to_excel(C:/pydata/chap01/df2.xlsx, index=False, encoding=utf-8)# 将table保存在指定的目录下,并取名为df2。编码格式为utf-8注:1. 两方法的index参数默认为True,设置为False表示不保存行索引,encoding选择文件编码形式,一般使用utf-8编码。2. 如果已将数据保存成Python的默认编码格式“UTF-8”,再读取时可以省略编码格式,或写成“encoding=utf-8。第 1 章1
45、 - 46统计学Python实现贾俊平2022-5-132022-5-13 PythonPython的数据处理的数据处理 频数分布表频数分布表l频数分布表频数分布表(frequency distribution table)简称频数表,是对类别数据(因子的水平)计数或数值数据类别化(分组)后计数生成的表格,用于展示数据的频数分布频数分布(frequency distribution ),其中,落在某一特定类别的数据个数称为频数频数(frequency)l由于类别数据本身就是一种分类,只要将所有类别都列出来,然后计算出每一类别的频数,就可生成频数分布表。根据观测变量的多少,可以生成一维表、二维表
46、和多维表l生成数值数据的频数分布表,需要先将其类别化,即转化为类别(因子)数据,再生成频数分布表。类别化的方法是将原始数据分成不同的组别,比如,将一个班学生的考试分数分为60以下、6070、7080、8090、90100几个区间,通过分组将数值数据转化为有序类别数据。类别化后再计算出各组别的数据频数,即可生成频数分布表第 1 章1 - 47统计学Python实现贾俊平2022-5-132022-5-13 PythonPython的数据处理的数据处理 生成频数分布表生成频数分布表类别数据的频数分布表类别数据的频数分布表一维表一维表当只涉及一个类别变量时,这个变量的各类别可以放在频数分布表中“行”
47、的位置,也可以放在“列”的位置,将该变量的各类别及其相应的频数列出来就是一维表,也称一维列联表一维列联表( o n e - d i m e n s i o n a l contingency table)【例例1-1】(数据:example1_1.csv)某物业管理公司准备施行一项物业管理改革措施,为征求社区居民的意见,在所管理的4个社区随机调查 80个住户,对户主进行调查。表1-6是被调查者所属的社区、性别及其对该项改革措施的态度数据(为节省篇幅,只列出前5行和后5行)。生成频数分布表,观察被调查者在所属社区、性别以及对改革措施态度的分布状况社区社区性别性别态度态度社区社区性别性别态度态度A
48、 A社区社区男男反对反对B B社区社区女女反对反对B B社区社区女女反对反对D D社区社区女女赞成赞成D D社区社区女女反对反对A A社区社区男男反对反对C C社区社区男男反对反对C C社区社区男男赞成赞成A A社区社区男男赞成赞成A A社区社区男男赞成赞成A A社区社区男男反对反对A A社区社区女女反对反对B B社区社区男男赞成赞成C C社区社区男男赞成赞成A A社区社区女女赞成赞成B B社区社区男男赞成赞成C C社区社区女女赞成赞成A A社区社区女女赞成赞成A A社区社区男男赞成赞成C C社区社区女女反对反对第 1 章1 - 48统计学Python实现贾俊平2022-5-132022-5-
49、13 PythonPython的数据处理的数据处理 生成频数分布表生成频数分布表类别数据的频数分布表类别数据的频数分布表一维表一维表第 1 章1 - 49统计学Python实现贾俊平2022-5-132022-5-13 PythonPython的数据处理的数据处理 生成频数分布表生成频数分布表类别数据的频数分布表类别数据的频数分布表二维表二维表l当涉及两个类别变量时,可以将一个变量的各类别放在“行”的位置,另一个变量的各类别放在“列”的位置(行和列可以互换),由两个类别变量交叉分类形成的频数分布表称为二维列联表(two-dimensional contingency table)或交叉表(cr
50、oss table),简称二维表。比如,对例1-1的3个变量可以分别生成社区与性别、社区与态度、性别与态度的3个二维表l使用pandas中的crosstab函数和pivot_table函数均可以生成两个类别变量的二维表。在crosstab函数中,设置参数margins=True可为二维表添加边际和;设置参数margins_name可以修改边际和的名称;设置参数normalize=index可以计算各行数据占该行合计的比例;设置参数normalize=columns可以计算各列数据占该列合计的比例;设置参数normalize=all可以计算每个数据占总和的比例第 1 章1 - 50统计学Pyth