收藏 分销(赏)

《Python语言》课件 第13章 项目实战:数据分析.pdf

上传人:曲**** 文档编号:231411 上传时间:2023-03-21 格式:PDF 页数:50 大小:1.69MB
下载 相关 举报
《Python语言》课件 第13章 项目实战:数据分析.pdf_第1页
第1页 / 共50页
《Python语言》课件 第13章 项目实战:数据分析.pdf_第2页
第2页 / 共50页
《Python语言》课件 第13章 项目实战:数据分析.pdf_第3页
第3页 / 共50页
《Python语言》课件 第13章 项目实战:数据分析.pdf_第4页
第4页 / 共50页
《Python语言》课件 第13章 项目实战:数据分析.pdf_第5页
第5页 / 共50页
点击查看更多>>
资源描述

1、Python语言大数据应用人才培养系列教材第十三章 项目实战:数据分析13.1数据清洗13.2 数据存储13.3 NumPy13.4 案例剖析13.1数据清洗第十三章 项目实战:数据分析简介大数据时代,数据便是掘金的黄金地带。企业大量的历史数据能 否发挥其应有的价值,取决于企业采用什么样的分析手段,去发掘数 据本身所蕴含的规律。数据分析人次炙手可热,已成为大数据时代企 业争抢的焦点。本章,将以Python技术为基础,通过实际案例的讲解 来使大家对数据分析的流程达到定性的认识。同时,通过课程实验,提高大家的动手能力,为使大家成为数据分析人才做好启蒙教育。13.1数据清洗第十三章 项目实战:数据分

2、析编码问题通常,源数据分布在不同的业务流程之中。而不同的业务流程中对数 据的要求、理解和规格各不相同。导致对同一数据对象的描述千差万别。因 此,在清洗数据的过程中,首先要对数据的编码格式做统一要求。对于数据项的约定可从以下几个方面进行:命名规则:对于同一数据对象,其名称应当是唯一的。比如页面访 问量这个字段,可能称作访问深度、分为PV数、页面浏览量等。数据类型:同一个数据对象的类型必须一致,而且表示方法唯一,如普通日期和时间戳的区分。计数方法:对于数值类型的数据,单位务必统一。如:重量单位,千克、公斤、克、斤等,在数据表中必须用唯一单位。约束条件:数据表之间的关系约定不能产生二义性。比如:表的

3、主 键、唯一性、外键约束等。13.1数据清洗第十三章 项目实战:数据分析缺失值分析数据的缺失,主要包括记录的缺失和记录中某各字段信息的缺失。两者 都会造成最终分析结果的不准确。下面,从缺失值产生的原因及处理方法进 行介绍。1产生原因缺失值产生的原因主要包括三大类,具体如下:出于信息安全的需求。由于某种原因无法获取,或者获取成本过高。人为的信息遗漏。可能是由于个人主观认识不到位,导致的因人为因 素产生的遗漏。也可能是由于数据获取设备的故障所引起的非人为原因产生 的丢失。字段值的缺失。某些情况下,缺失值不一定意味者着数据的错误。比 如儿童的手机号码、个人收入等字段值。2数据值的缺失,通常会给数据分

4、析带来如下影响:数据挖掘建模将丢失大量的有用信息。13.1数据清洗第十三章 项目实战:数据分析缺失值分析数据挖掘模型表现出来的不确定性更加显著,数据背后蕴含的规律更难发掘。字段的空值会导致数据分析过程陷入混乱,致使分析产生不可靠的结果。3应对策略生活中我们所采集到的数据常错综复杂,其值的缺失也是很常见。那么我们该 如何处理这些缺失值呢?常用的有三大类方法,即删除法、填补法和插值法。删除法:当数据中的某个变量大部分值都是缺失值,可以考虑删除改变量;当缺失值是随机分布的,且缺失的数量并不是很多是,也可以删除这些缺失的观测 替补法:对于连续型变量,如果变量的分布近似或就是正态分布的话,可以 用均值替

5、代那些缺失值;如果变量是有偏的,可以使用中位数来代替那些缺失值;对于离散型变量,我们一般用众数去替换那些存在缺失的观测。插补法:插补法是基于蒙特卡洛模拟法,结合线性模型、广义线性模型、决 策树等方法计算出来的预测值替换缺失值。13.1数据清洗第十三章 项目实战:数据分析去除异常值异常值,是指数据样本中的个别值,其数值明显偏离对应字段的所有观察值。异常值又称离群点。异常值的分析是检验数据集中是否存在录入错误以及不合常理 的数据。去除异常值的方法主要包括:统计分析法通常对变量的取值做一个简单的量化统计,尤其是数值型字段。进而查看那些 取值超出合法取值范围。最常用的统计方法是求最大值、平均值、最小值

6、。用最4 值和最大值确定正常取值范围。用平均值替代空白字段值,将超出合理取值的记身 剔除采样数据。比如:个人信息中的年龄字段取值超过15。就属于异常取值,可考 虑用平均取值替代。3 b分析法通常,如果数据服从正态分布,在3b思想的指导下,异常值被认定为与平均值 偏差超过3倍标准差的数值。因为,在正态分布下,距离大于3倍标准差的数值的杷 率小与等于。.。3,属于小概率事件。相反,若数据字段值不服从正态分布,可用 远离平均值多少倍标准差约定异常数值。13.1数据清洗第十三章 项目实战:数据分析去除重复值与冗余信息由于各种各样的原因,在获取的数据源中,经常存在重复的字段、重复的记录 以及获取了与分析

7、主题无关的数据项。这时,为了提高数据的质量,我们需要对潴 数据做去重处理和冗余处理。对于重复数据的处理,我们通常采用的方法是排序合并。具体做法是:现 将数据库表中的记录按照指定的规则排序,然后通过比较邻近记录是否相似来检派 记录是否有重复。这项工作包括排序和相似度计算两个步骤。常用的排序方法有:插入排序、冒泡排序、快速排序、希尔排序等。常用的相似度计算方法有:基本骷 字段匹配算法、标准的欧氏距离法、相关系数、信息嫡等。另外,需要注意的是,对重复的数据项,尽量通过具体分析主题确定相关提取 规则。在数据清洗阶段,对重复的数据切勿轻易的进行删除。尤其是不能将与分析 主题相关的重要业务数据过滤掉。对于

8、与分析主题无关的数据项,也即我们通常说的冗余信息,同样,也不可直 接剔除出数据源。而需要根据制定的提取规则通过子表的形式,生成新的和分析拄 题相关的数据表。大数据应用人才培养系列教材第十一章 项目实战:爬虫程序11.1数据清洗11.2数据存储11.3 NumPy11.4案例剖析13.2数据存储第十三章 项目实战:数据分析CSV文件存取数据存取是数据分析的基础,尤其是面对海量数据,数据的存取方式显 得尤为重要。本节,以Pandas库对象为基础重点介绍python数据分析中常见 的几种数据存取方法。CSV(Comma-Separated Value,逗号分隔值)是一种常见的文件格式。通常,数据库的

9、转存文件就是CSV格式的,文件中的各个字段对应于数据库 表中的列。在Pandas中我们可以使用read_csv()函数将.csv数据读入程序。比如,读取学生成绩数据,首先创建一个stuscore.csv文件,然后使用 pandas对象的read_csv()函数读取并显示数据。13.2数据存储第十三章 项目实战:数据分析CSV文件存取first,py234mport pa nda s pd(import nuipy a ada tza(print:da ta)pd-r-ea d_csv(./stuscore-gsv*)*REPL*python0 rl 2 3 451 2,3,45,6 7,d 0

10、*0 乙 2*8 0 8 7 6 8 6 7 9d 9,1 00,8 1 1,9 8 7 8 7 8 97 8 19 0 0 78 8 9 8 8 8 9Repl Cl osed*13.2数据存储第十三章 项目实战:数据分析CSV文件存取 import pandas as pd import numpy as np import matplotlib.pyplot as pit names=张=李四土方?,赵六郭七 ages=20,19,23,18,19 DataSet=list(zip(names,ages)DataSetK张三,20),(,李四,,19),(王五23),(,赵六,,18),

11、C郭七)19)df=pd.Data Fra me(data=DataSet,columns=Name/Age)df#输;l;pandas*j象创建的数据表Name Age0张三201李四192王五233赵六184 郭七 19 df.to csvC./info.csvJndex=False,header=False)#将生成的数据df写入info.cvs#然后,读取info.csv文件,用于验证info.csv文件创建成功,示例代码如下:data=pd.read_csv(./info.csv)#读取info.csv中的数据以验证写入成功 print(data)0旅三201239 3 8 9 12

12、 11 四五六七 到王理郭13.2数据存储第十三章 项目实战:数据分析JSON文件的存取JavaScript Object Notation简称Json是一种与平台无关的数据格式,被 广泛的用于应用或系统间的数据交换。Pandas提供的read_json()函数,可以 用来创建pandas Series或者pandas Data Fra me数据结构。同时,pandas也提 供了to_json()函数用以完成数据框或序列到json格式的转换。关于pandas对 json数据的存取比较简单,这里通过一个简单的示例来说明两者之间的转换 关系。13.2数据存储第十三章 项目实战:数据分析JSON文件

13、的存取.0 0 1.py x1 import pandas as pd 2 的定义Json字符串 3 son_str=name:Bil l”,“LOuiTtry“:“Netherl a nds 4 岳读取j son字符串5 data=pd.rea d_j son(j son_sTr,typ=series)6 悌俞出pandas读取白勺j son值7 print(da ta)_ 8 j#定义pandas序歹I 9 ida ta”name“2co【rYtry=Lil y,“Bra zil”10#将序列数据写入j son并输出11 print(da ta.toj son()12 了*REPL*pyt

14、hon x.name Bil lcountry Netherl andsdtzype:objectname*:Lil y,country:-Bra zil*)+:+*Repl Cl osed*13.2数据存储第十三章 项目实战:数据分析XLSX文件的存取使用pandas读取Excel电子表格中的数据,需借助第三方库xlrd完成 Excel表数据的读写操作。用read_excel()函数完成Excel电子表格中数据的读 取,用to_excel()函数完成数据pandas DataFrame中的数据写入Excel。为了完成Excel电子表格中数据的存取,我们先来完成Python第三方库 openp

15、yxL xlsxwriter、xlrd、的安装。这里,还是使用pip install命令完成。示例Excel数据图13.6:1234567me三四五六七 na张李王赵郭A B C Dclassscore三一班r 37oj三二班5oo|三三班r 6ooj三二班580|三三班70 0|13.2数据存储第十三章 项目实战:数据分析XLSX文件的存取首先,我们用pandas的数据框来创建如图4.6的Excel数据表,然后,将 创建的Excel表的数据输出。import pandas as pd”df_out=pd.DataFrame(C张三;三一班;370)(李四;三二班,500),(王五;三三 班,

16、600),(赵六;三二班;580)(郭七;三三班,70 0),columns=name;class;score*dfout.to_excel(stu sc ore.xl sx*)#生成 excel 文件/pd.r ead_excel(st us co re.x 1 sx()磅取 excel 文件/name classscores10张三三一班3721李四三二班50(k12王五三三班dOCk13赵六三二班58g4郭七三三班70013.2数据存储第十三章 项目实战:数据分析XLSX文件的存取df_out写入的excel文件通常位于Python的安装目录下,如下图所示:python.exe pyth

17、on3.dll国 python36.dll7 pythonw.exe 里 stuscore.xlsx2018/3/28星期.2018/3/28星期2018/3/28星期2018/3/28星期.2018/6/10星期一13.2数据存储第十三章 项目实战:数据分析MySQL数据库文件的存取大数据时代,海量的数据通常是保存在指定的数据库中,MySQL作为一 种开源的关系型数据库,收到中小企业的青睐。本节,我们将以MySQL数据 为对象,讲解Pandas对象是如何对其数据进行存取的。同样,我们以学生成 绩单为例,MySQL数据源示例。售理员C:WIZDOWSsystem32cmd.exe-mysql-

18、u root-p|mysql use stxx Data.ba.se changed mysq.l sKow ta bl a s:+|T a.bl es_ixt_s ti|-+|scoresT-41 row irt set(0.00 sec)mysq.l sel ect*from scores;+|name|cl a.ss|scoir e轴K二二二二-一二二一-vr-wIIJ.IIJ.IIJ.-OOOOO 70080 356576 rows in set(0.08 sec)knysql sel ect*from scores;13.2数据存储第十三章 项目实战:数据分析MySQL数据库文件的存

19、取尝试第三方库mysql.connector.python的安装。同样,我们采用pip install 命令完成。在DOS下输入如下命令:pip install mysql.connector.pythonD:pip install mysql-connector-pythonCollecting mysql-connector-pythonDownloading https:/iles.pythonhosted.org/packages/LO/38/7c7c8acOe791c40a54bObe95a63cB43:9cB40/mysql connector_python-Q.0.11 _cp3

20、6_cp36m-win amd64.whl(.3.0MB)100%I 3.0MB 200kB/sCollecting protobu=3.0.0(from mysqlconnector-python)D ownl o adi ng https:/il e s.pythonho sted.org/p ack age s/32/c/6945106 da76 db9b62 dll b429 aa4 e06281 3200e/protobu3.5.2.pos11-cp36-cp36in-win amd64.whl(958kB)100%962kB 182kB/sRequirement already s

21、atisfied:setuptools in d:pythonlibsite-packages(from protoBu=3.0.(hon)(39.0.1)Requirement already satisfied:six=l.9 in d:pythonlibsite-packages(from protoBu=3.0.0_:n)(1.11.0)Installing collected packages:protobu mysql-connector-pythonSuccessfully installed mysql-connector-python-Q.0.11 protoBu-3.5.2

22、.postl13.2数据存储第十三章 项目实战:数据分析MySQL数据库文件的存取导入mysqLconnnector库,判断其是否能正常工作。一 import mysql.connec tor as m”ms._version80 1 1 3OK!太好了,能够正常显示MySQL的版本号!应该可以正常工作!T GO ON!cnx=ms.connect(4J user=root,+J passvord=1 234 5 6 3 host=1 27.0.0.database=st u A cursor=cnx.cursorQ-1 cursor.execute(H select*from scores*

23、X1 result=cursor.fetchallO-1 printCresult)(张三三一班,370),(李四】三二班,500),(王五:三三班,600),(赵六】三二 班;580),(郭七】三三班1700)卜 T13.2数据存储第十三章 项目实战:数据分析MySQL数据库文件的存取为了完成pandas数据框中的数据写入MySQL的任务,首先需要安装支撑这一任务的链接器第三方Python库sqlalchemy。依旧使用pipinstall命令完成安装。国 5ystem32cmd.exe X96%96%97K.97%97%97A:.97%既用 98.98%98%98%98%yyfc yy%9

24、9%9守笳 口,叫 loo%B 2.OMB/sInstalling collected packages:sqlalchemyRunning setup,py install for sqlalchemy.done Sue cess fully installed sqlalchemy_1.2.85555555555555555554MB 4MB 5MB 5MB 5MB 5MB SMB 5MB FiJiTJi 5MB 5MB SMB6MB 6MB SMB;.6M13.2数据存储第十三章 项目实战:数据分析MySQL数据库文件的存取 import pandas as pd。,import pym

25、ysqlu from sqlalchemy import create_engineconn=create_engme(,mysql-mysqldb:/root:1 23456localhost:330 6 stu?charset=utf df=pd.DataF【ame(hameT丁一;丁二;丁三IclassT班;二二班;三三班l,s core:60 0,70 0,660 df.to_sql(name=scores;con=conn:ifexists=appendindex=False,index_lab el=False13.2数据存储第十三章 项目实战:数据分析MySQL数据库文件的存取然

26、后,通过win+R键打开运行对话框,输入CMD进入DOS,进入 MySQL控制台,查看scores表中的内容。VSsystem32cmd.exe-mysql-uroot-p Xnysql sKow ta bl es;|Ta bl a s_iit_s tu.+scoreset(0.00 sec)nysql sel ect from scores:TLamescore三四至八七三三 攀喜丁丁丁-三三三三三二OOOOOOOO 7008000635657676rows 1 xt set(0.00 sec13.2数据存储第十三章 项目实战:数据分析MySQL数据库文件的存取另外,我们也可以将pandas

27、中的数据重新建一个表单独存放,很简单,只需将上面示例代码中的表名更改一下就OK。df.to_sql(name=newscore,con=conn,if_exists=append,index 二False,indexjabel 二 False)GWINDOWSsystem32cmd.exe-mysql-uroot-p Xysql show tables;-+Tables_in_stu|newscorescores-十rows in set(0.0 0 sec)ysqlselect*from newscore;iLdlTlH|class|score-TT-Jo o o0 0 66 7 6r ow

28、zin set(0.0 0 sec)大数据应用人才培养系列教材第十一章 项目实战:爬虫程序11.1数据清洗11.2数据存储11.3 NumPy11.4案例剖析13.3 NumPy第十三章 项目实战:数据分析简介NumPy(Numerical Python的缩写)是开源的Python科学计算 库。使用NumPy,就可以很方便地使用数组和矩阵。NumPy包含很多 实用的数学函数,涵盖线性代数运算、傅里叶变换和随机数生成等功 能。NumPy已成为Python科学计算生态系统的重要组成部分,其在保 留Python语言优势的同时大大增强了科学计算和数据处理的能力。更 重要的是,NumPy与SciPy、M

29、atplotlib等其它众多Python科学计算库 很好地结合在一起,共同构建了一个完整的科学计算生态系统。一句 话,NumPy是使用Python进行数据分析的一个必备工具。13.3 NumPy第十三章 项目实战:数据分析基本操作Numpy吊的ndarray是一个多维数组对象,该对象由描述数据的元数据和数据 本身两部分组成。通常,大部分的操作仅仅是针对修改描述数据的元数据部分,而 不改变实际数据本身。Numpy中的数组一般是同质的,亦即数据的类型是一致的,这样的规定最大的好处在于方便估算数组所需的存储空间。与Python类似,Numpy数组的下标也是从零开始的。ndarray中的每个元素在 内

30、存中使用相同大小的块。ndarray中的每个元素是数据类型对象的对象(称为dtype)。从ndarray对象提取的任何元素(通过切片)由一个数组标量类型的Python对象表示。ndarray13.3 NumPy第十三章 项目实战:数据分析基本操作通常,ndarray对象是使用NumPy中的数组函数创建的,定义如下:numpy.array(object,dtype 二 None,copy 二 True,order 二 None,subok 二 False,ndmin二o)其参数的含义如下表。参数含object任何暴露数组接口方法的对象都会返回一个数组或任何(嵌 套)序列。dtype*3数组的所需

31、数据类型,可选。一copy421可选,默认为true,对象是否被复制。CordersC(按行)、F(按列)或人(任意,默认)。psubpk默认情况下,返回的数组被强制为基类数组。如果为true,则返回子类。一ndinim指定返回数组的最小维数。一第十三章 项目实战:数据分析13.3 NumPy基本操作创建数组最简单的办法就是使用array函数,我们可以通过array函数传递 Python的序列对象创建数组。In 1:import numpy as npIn 2:a=np.array(l,2)In 3:a array(L 2,3,4,5)In 4:b=np.array(l,2,3,1%5,6,-

32、1)n UrS.一 5 5乙5,8,YJ-一 一 f 一“一 3 6 913.3 NumPy第十三章 项目实战:数据分析基本操作数组的元素类型可以通过dtype属性获得,我们可以通过dtype参 数在创建时指定元素类型。In 6J:c=np.arrayUU-,6,7,&9,10,lb 12,13,14,15J,dtype=up.1:oat)In 8J:d=np.array”16,17,18,19,20,21,22,23,24,25,26,27,dtype=plex)d16192225也也十也17202326KJ.0肛地12 2 213.3 NumPy第十三章 项目实战:数据分析基本操作然而,通

33、过创建Python序列,借助array函数将序列转换为数组效 率不高。为此Numpy专门提供了很多用来创建数组的内置函数。举例 如下:arange()函数:通过指定开始值、终止值和步长来创建一维数组,数 组不包含终止值;linspace()函数:通过指定开始值、终值和元素个数来创建一维数组,可以通过endpoint关键字指定是否包括终值,缺省设置是包括终值;logspace。函数和linspace。函数类似,不过它创建等比数列。13.3 NumPy第十三章 项目实战:数据分析基本操作In 10:e=np.orange(1,20j 3)In 11:earray(1,4,7,10,13,16,19

34、)In 12:=np.linspace(1?20,30)In 13:lnarray 1.4.27586207,7.55172414,10.8275862b 14.10344828.17.37931034,1.65517241,4.93103448,8.20689655.11.48275862,14.75862069,18.03448276,2.31034483,5.5862069,8.86206897,12.13793103,15.4137931,18.6896551乙 2.96551724,6.24137931,9.51724138,12.79310345,16.06896552,19,34

35、482759,3.62068966.6.89655172,10,17241379,13.44827586,16.72413793,20.)In 14:g=np.logspace(b 20/10)In 15:gOut 15array(1.00000000e-H3E 1.29154967e import numpy as np h=np.array(0,1,2,3,4),(5,6,7,8,9)X10,11,12,13,14),(15,16,17,18,19),(20,21,22,23,24)harray(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,

36、19,20,21,22,23,24)h.ndim 2 h.shape(5,5)h.size 25 h.dtype dtype(int32)h.itemsize413.3 NumPy第十三章 项目实战:数据分析基本操作西皿_BY一中数组的存取方法和Python标准的方法相同。其存取方式依次介绍如下:对于一维数组,其操作类似于Python中的list。用整数作为下标可以获取数组中 的某个元素,比如:a=np.arange(lO)a 77 一用范围作为下标获取数组的一个切片,但不包括起始元素和终止元素,相当于数 组的子集。比如:a3:5array(3,4)在获取指定数组的一个切片时,可以省略起始位置

37、或结束位置。默认表示从第零 个元素开始或直至最后一个元素。比如:a:7array(O,1,2,3,4,5,6)a3:array(3z 4,5,6,7,8Z 9)13.3 NumPy第十三章 项目实战:数据分析基本操作多维数组的存取,以二维为例。import numpy as np h=np.array(0,1,2,3,4),(5,6,7,8,9),(10,11,12,13,14),(15,16,17,18,19),(20,21,22,23,24)harray(O,1,2,3,4,5,6,7,8,9,IO,11,12z 13,14,15,16,17,18,19,20,21,22,23,24)hl

38、,3:5array(8z 9)h3:z3:array(18,19,23,24)h:,3array(3,8,13,18,23)harray(O,1,2,3,4,5,6,7,8,9,1OZ 11,12z 13,14,15,16,17,18,19,20,21,22,23,24)大数据应用人才培养系列教材第十一章 项目实战:爬虫程序11.1数据清洗11.2数据存储11.3 NumPy11.4案例剖析13.4案例剖析第十三章 项目实战:数据分析数据分析概述数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,提取有用 信息和形成结论而对数据加以详细研究和概括总结的过程。它数据挖掘的基础,做 好数据

39、的分析,才能保障数据挖掘的可靠性。数据分析有极广泛的应用范围。通常 数据分析可划归三类:探索性分析:源数据可能杂乱无章,看不出规律,通过作图、造表、用各种 形式的方程拟合,计算某些特征量等手段探索规律性的可能形式,即往什么方向和 用何种方式去寻找和揭示隐含在数据中的规律性。假设模型分析:在探索性分析的基础上提出一类或几类可能的模型,然后通 过进一步的分析从中挑选一定的模型。理论推断分析:通常使用数理统计方法对所定模型或估计的可靠程度和精确 程度作出推断。这三种分析方法,逐次递进,探索性分析是其它分析的基础。通常,我们把探 索性分析称为数据分析,而后两者统称数据挖掘。13.4案例剖析第十三章 项

40、目实战:数据分析思路解析以房天下西安站二手房源数据为分析对象,使用用Numpy+Panda s库对数据进行探索性分析。人才新政使古老的西安生机盎然,焕发活力。伴随人口的大 量涌入,住房这个古老的话题,炙手可热。如何在茫茫房海中寻找中 意的她呢?本节课,我们将以房天下西安二手房数据包为分析对象,首先通过Pandas对象将其从Excel电子表格中导入到数据框中。然后,对房源数据进行清洗。最后,对各关键字段字段进行相应的可视化处 理,通过直观可视的图像,帮你寻找中意的她。13.4案例剖析第十三章 项目实战:数据分析代码实现 import pandas as pd import numpy as np

41、 import matplotlib.pyplot as pit df=pd.read_csv(ftx_xian2.csvzencoding=gbk)df.info()len(df.title.unique()df_duplicates=df.drop_duplicates(subset=title,keep=first)df_duplicates.info()df_notnull=df_duplicates.dropna()df_notnull.info()df_clean=dduplicatestChousetypefloororientationyearbuilt,Street,area

42、unitprice df_clean.head()df_clean.yearbuilt.value_counts()import matplotlib.pyplot as pit plt.style.use(ggplot)df_clean.yearbuilt.hist()df_clean.boxplot(column=unitpricezby=yearbuilt)plt.show()from matplotlib.fontmanager import Font Properties font zh=FontProperties(fname=msyahei.ttf)df_label=df_cle

43、an.boxplot(column=yearbuiIt,by=Street)for label in df_label.get_xticklabels():label.setfontproperties(fontzh)plt.show()13.4案例剖析第十三章 项目实战:数据分析代码解析L_ df.info()Rngelndexi 3 1025 entries,O to 31ON5 Data columns(total 18 columns)二title30973 non-o u 11 object:masterma p30973 non-n u 11 objectlink 30973 no

44、m-n ui 11 objecthouisetvpe 30973 non-n u 11 object floor 30973 non-n u 11 objectorientation30558 non-n lj 11 objectyea rb u i It city ci ist rict Street3039 3 non-n lj 11 float43 1ON6 non-n u 11 objectlj 11 object oil object310253 a ONGc o m m lj n itV add ress30973 non-n lj 11 objectoxA/ne r309733O

45、N57non-na re apriceunitQrice3097330973ci 11 object lj 11 object:11不103七64 11 float64pageaddr30973 non-n lj 11 flo口t&43 1ON6 non-n lj 11 objectspecie I lbel 24648 nori-n u 11 object citypesz floa1z64(4),objec1:(14)merriory usagei 4-3+f/l B13.4案例剖析第十三章 项目实战:数据分析代码解析查看数据源是否有重复数据,这里,我们我们假定以title字段为 关键字,

46、若标题内容相同,则认为是同一记录。len(df.title.unique()2579313.4案例剖析第十三章 项目实战:数据分析代码解析通过使用drop_duplicates()清洗掉数据源中的重复记录。这里,drop_duplicates函数通过subset参数选择以哪个列为去重基准。keep参数则 是保留方式,first是保留第一个,删除后余重复值,last则是删除前面,保留 最后一个。处理字段空值,这里为了方便,直接用字段空值处理函数dropna(),删 除含有空值的行。不过,一般情况下,对于数值数据,最好用其列值得平均值替代空值。求均值用到的统计函数是mean。,有兴趣的朋友可以尝试

47、,这里不再赘述。13.4案例剖析第十三章 项目实战:数据分析代码解析vczl a ss P口 nds.core.Tr me_U台七口 F 厂台 mea I rit64 I ndex=19 5 N O entries,1 to 3a oN3 Da ta co I lj m ms(tot口 I 1 s co I lj m ms):titl e 19520 mom-m ui 11 obj ectmststerm口 p 19520 nom-m lj 11 obj ect9520 nom-m ci I I obj ect:holjsety pe 19 5 2 0 nom-n lj 11 obj ect:

48、fl oor 19520 non-m u 11 o bj ectorienta tion JL95NO mom-m u 11 obj ect:y r t)ui i 11z ity d ist ricztStreet1 9520 non-n lj I I fl oa t(549520 mom-n lj I I obj ecztj ect195NO non-m lj I I obj czt9520 mom-n lj I I flprice 195NO riorimo 11 fl oa t54UCil ZQrice 19520 n o n-n ui 11 fl os!zG4pa g ea ddr S

49、L95NO non-n lj I I obj ectspecia l l a bel 1 9520 n n-n lj I I obj ectdtypes:fl o2t:64(4),obj e df_cl ean=dfdupl icatesffousetypeVfl oorVorientationVyearbuil f/Streef/areayunit price1 df_cl ean.head()housetypefloor orientationyearbuilt Street area unitprice03室2厅色j层(共28层)南北向2012.0北大明宫118.019.49212室2厅

50、同层(共32,房)西北向2011.0北大明宫88.015.98822室2厅低层(共33层)南向2017.0匕大明宫74.021.07435室2厅中层(共11层)南北向2014.0北大明宫175.020.00043室2厅中层(共33层)南北向2014.0北大明宫138.015.65213.4案例剖析第十三章 项目实战:数据分析代码解析运用统计函数统计df_clean数据的字段取值情况,比如统计房子 的建造时间分布情况。如图房屋建筑时间统计结果;df_clean.yearbuilt.value_counts()2013.041191998.05092012.020682018.04552010.0

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 研究报告 > 年鉴/数据分析

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服