Python语言程序设计(微课版)-课件 CH15-数据分析与可视化程序设计_第1页
Python语言程序设计(微课版)-课件 CH15-数据分析与可视化程序设计_第2页
Python语言程序设计(微课版)-课件 CH15-数据分析与可视化程序设计_第3页
Python语言程序设计(微课版)-课件 CH15-数据分析与可视化程序设计_第4页
Python语言程序设计(微课版)-课件 CH15-数据分析与可视化程序设计_第5页
已阅读5页,还剩86页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第15章

数据分析与可视化数据分析与可视化01.数据分析概念03.数据可视化02.相关技术介绍04.综合案例主要内容1数据分析概念数据分析数据分析是通过对收集到的大量数据进行适当分析,提取有用信息,最终形成相关结论数据分析可以帮助用户对数据进行梳理,并根据根据结论做出相应处理数据分析实例二手房数据分析淘宝销售数据分析2相关技术介绍数据分析NumPy库Pandas库Matplotlib库numpy库创建数组常用属性常用方法元素访问常用统计函数numpy库numpy是Python语言的一个扩展程序库,支持大量的维度数组与矩阵运算,并且针对数组运算提供大量的数学函数库importnumpyasnpnumpy库numpy中最重要的对象是多维数组(ndarray)ndarray:存储单一数据类型的N维数组对象,与list不同,其存储数据类型必须相同ndarray数组的索引下标从0开始numpy库创建ndarray数组array(object,dtype=None)object:数组或数列dtype:数组元素的数据类型data=np.array([1,2,3,4,5])#创建一个包含五个元素的一维数组numpy库【例15.1】创建数组对象numpy库【例15.2】创建数组对象,指定元素的数据类型numpy库ndarray对象常用属性属性说明ndarray.ndim秩,即轴的数量或维度的数量ndarray.shape数组的维度,对于矩阵,n行m列ndarray.size数组元素的总个数,相当于.shape中n*m的值ndarray.dtypendarray对象的元素类型numpy库【例15.3】ndarray对象常用属性numpy库ndarray对象常用方法方法说明arange类似range,一定范围内固定间隔的数字ones值全为1的ndarrayzeros值全为0的ndarrayempty值未初始化的ndarrayasarray从序列类型数据创建ndarrayreshape重新分配维度,但不改变原有ndarrayresize重新分配维度,且改变原有ndarraynumpy库【例15.4】ndarray对象常用方法numpy库ndarray对象元素访问一维数组访问方式与list相同多维数组访问方式:每个维度索引之间用逗号分割numpy库【例15.5】访问ndarray对象中的元素numpy库numpy常用统计函数函数说明sum求和mean求平均值min求最小值max求最大值std求标准差var求方差numpy库【例15.6】常用统计函数pandas库Series结构和DataFrame结构读取和保存CSV文件数据基本操作pandas库pandas是Python语言的一个扩展程序库,用于数据分析pandas是基于numpy的工具pandas提供了大量函数和方法可用于数据分析importpandasaspdpandas库pandas提供了两种数据结构:Series结构(一维数据)DataFrame结构(二维数据)pandas库Series结构也称Series序列,类似于一维数组,由索引和数据值组成索引值数据类型pandas库创建SeriesSeries(data,index,dtype)data:输入的数据,可以是列表、常量、ndarray数组index:索引标签值,数字或字符,默认为从0开始的整数dtype:数据类型,默认系统会根据获得的值自动指定pandas库【例15.7】创建Series,不指定索引标签值pandas库【例15.8】创建Series,指定索引标签值pandas库获取Series的索引值和元素值index属性:索引标签值values属性:元素值pandas库【例15.9】获取Series的索引标签值和元素值pandas库访问Series元素下标访问索引标签值访问pandas库访问Series元素--下标访问给出下标或切片值pandas库【例15.10】通过下标访问Series中元素pandas库访问Series元素--索引标签值访问给出索引标签值或索引标签值列表pandas库【例15.11】通过索引标签访问Series中元素pandas库DataFrame结构是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型值)DataFrame既有行索引也有列索引,可以看作是多个Seriespandas库pandas库创建DataFrameDataFrame(data,index,columns,dtype)data:输入的数据,可以是列表、常量、ndarray数组、字典index:行索引值,列表数据,默认为从0开始的整数columns:列索引值,列表数据,默认为从0开始的整数dtype:数据类型,默认系统会根据获得的值自动指定pandas模块--da02从list数据创建,不指定行列索引data_list=[[10,20,30],[40,50,60]]data_dataframe=pd.DataFrame(data_list)print(data_dataframe)行索引列索引pandas库【例15.12】创建DataFrame,不指定索引值pandas库【例15.13】创建DataFrame,指定索引值pandas库【例15.14】使用字典创建DataFramepandas库查看DataFrame数据shape:查看各维度大小index:行索引columns:查看列名head():默认查看前5行,可设定查看行数tail():默认查看最后5行,可设定查看行数pandas库【例15.15】查看DataFrame基本信息pandas库重建DataFrame行索引修改index属性,赋值为新的行索引列表pandas库【例15.16】重建DataFrame行索引pandas库修改DataFrame列名修改全部列名修改columns属性,赋值为新的列名列表修改某个列名通过rename方法,参数为字典数据rename(columns=新列名,inplace=True)pandas库【例15.17】修改DataFrame全部列名pandas库【例15.18】修改DataFrame指定列名pandas库访问DataFrame元素使用下标值选择数据:iloc使用索引标签值选择数据:locpandas库访问DataFrame元素--使用下标值选择数据选择单行:data_dataframe.iloc[1,:]选择连续多行:data_dataframe.iloc[1:4,:]选择不连续多行:data_dataframe.iloc[[1,

3],:]选择单列:data_dataframe.iloc[:,1]选择连续多列:data_dataframe.iloc[:,1:4]选选择不连续多列:data_dataframe.iloc[:,[1,

3]]选择某一个元素:data_dataframe.iloc[1,2]选择区域内元素:data_dataframe.iloc[1:4,1:3]pandas库【例15.19】使用下标值(iloc)选择DataFrame元素pandas库访问DataFrame元素--使用索引标签值选择数据选择单行:data_dataframe.loc["b",:]选择连续多行:data_dataframeloc["b":"d",:]选择不连续多行:data_dataframeloc[["b","d"],:]选择单列:data_dataframe.loc[:,"weight"]选择连续多列:data_dataframe.loc[:,"weight":"gender"]选择不连续多列:data_dataframe.loc[:,["weight","gender"]]选择某一个元素:data_dataframe.loc["b","height"]选择区域内元素:data_dataframe.loc["b":"d","weight":"height"]pandas库【例15.20】使用索引标签值(loc)获取DataFrame元素pandas库条件过滤选取&:与运算,运算符左右两个表达式都必须满足|:或运算,运算符左右两个表达式满足其中之一即可pandas库【例15.21】DataFrame数据筛选pandas库读取CSV文件read_csv(path,index_col,names,header,usecols,parse_dates,encoding)path:文件路径index_col:自定义行索引值names:自定义列名称header:指定行数用来作为列名usecols:指定读取哪些列parse_dates:指定合并为日期类型的列encoding:指定编码,文件中包含中文使用'gbk'pandas库保存CSV文件to_csv(path,sep,index,header,columns,encoding)path:文件路径sep:分隔符,默认为逗号index:是否保留行索引,布尔值header:是否保留列名,布尔值columns:指定保存哪些列encoding:指定编码,文件中包含中文使用'gbk'pandas库数据基本操作查看数据摘要信息:info()查看数据统计信息:describe()pandas库查看数据统计信息describe()count:数量统计,此列共有多少有效值std:标准差min:最小值25%:四分之一分位数50%:二分之一分位数75%:四分之三分位数max:最大值mean:均值pandas库【例15.22】读入CSV文件的数据,并保存3数据可视化matplotlib库matplotlib是Python的绘图库,是数据分析中不可或缺的重要工具之一绘制各种图形,比如柱状图、饼状图、折线图等matplotlib中最常用的是其中一个子模块——pyplotimportmatplotlib.pyplotaspltmatplotlib库函数名称描述bar绘制柱状图hist绘制直方图pie绘制饼状图plot绘制折线图scatter绘制x与y的散点图matplotlib库折线图:plot(x,y,格式控制字符串)x:X轴的值y:Y轴的值格式控制字符串:基本属性如:颜色(color),点型(marker),线型(linestyle)/2.1.1/api/_as_gen/matplotlib.pyplot.plot.htmlmatplotlib库设置X轴标题:xlabel(标题名称)设置Y轴标题:ylabel(标题名称)设置图标标题:title(标题名称)设置图例:legend(图例位置)中文显示:plt.rcParams["font.family"]="SimHei"保存图形:savefig(图片名称)matplotlib库【例15.23】绘制折线图matplotlib库柱状图:bar(x,height,width,label)x:X轴的值height:柱的高度值,相当于Y轴值width:宽度 ,取值范围0~1,默认0.8label:数据柱的标题matplotlib库【例15.24】绘制柱状图matplotlib库直方图:hist(x,bins)x:X轴的值,对应plot中Y轴的值bins:指定bin(箱子)的个数,即总共有几条条状图matplotlib库【例15.25】绘制直方图matplotlib库饼图:pie(data,labels,autopct)data:饼图数据labels:扇面说明文字autopct:在扇面上显示比例的格式,默认为Nonematplotlib库【例15.26】绘制饼图matplotlib库散点图:scatter(x,y,s,c,marker)x:X轴的值y:Y轴的值s:散点大小c:散点颜色marker:散点类型matplotlib库【例15.27】绘制散点图4综合案例分析天津2021年空气质量数据数据中存储了天津市2021年每一天的空气质量检测数据,存储与CSV文件中。案例主要操作包括:分析数据统计信息,绘制2021年各指标图形。数据分析的步骤读取数据数据清洗分析数据数据可视化第一步:读取数据数据文件名:天津2021空气质量.csvdf=pd.read_csv("天津2021空气质量.csv",encoding='gbk',index_col=['日期'],header=0,parse_dates=['日期'])第二步:数据清洗首先查看各数据列类型和是否存在缺失值print(())print(df.isnull().sum())各列数据类型各列非空数据个数总行数第二步:数据清洗如果存在缺失值直接将缺失值所在行或列删除:dropna使用其他值填充:fillna第三步:分析数据查看数据的统计信息print(df.describe())第三步:分析数据获取AQI最大值和最小值的日期print("AQI最大值日期:",df['AQI'].idxmax(),",最大值为:",df['AQI'].max())print("AQI最小值日期:",df['AQI'].idxmin(),",最小值为:",df['AQI'].min())第三步:分析数据获取AQI的平均值和标准差print("AQI的平均值:",df['AQI'].mean())print("AQI的标准差:",df['AQI'].std())第三步:分析数据获取不同质量等级的数量print(df['质量等级'].value_counts())第四步:数据可视化绘制天津2021年AQI值折线图plt.rcParams["font.family"]="SimHei"plt.plot(df.index,df["AQI"])plt.xlabel("日期")plt.ylabel("AQI")plt.title("天津2021年AQI值变化")plt.show()第四步:数据可视化绘制天津2021年12月AQI值柱状图df12=df.loc['2021-12-01':'2021-12-31',:]#获取12月数据df12=df12.reset_index()#重置索引,将索引值变为从1开始的整数df12.index=df12.index+1plt.rcParams["font.family"]="SimHei"plt.bar(df12.index,df12["AQI"])plt.xlabel("日期")plt.ylabel("AQI")plt.title("天津2021年12月AQI值变化")plt.show()第四步:数据可视化(扩展)绘制天津2021年12月AQI与PM2.5值柱状图df12=df.loc['2021-12-01':'2021-12-31',:]#获取12月数据df12=df12.reset_index()#重置索引,将索引值变为从1开始的整数df12.index=df12.index+1plt.rcParams["font.family"]="SimHei"plt.bar(df12.index,df12["AQI"

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论