数据挖掘与分析

上传人:pu****.1 文档编号:592638993 上传时间:2024-09-21 格式:PPT 页数:36 大小:2.44MB
返回 下载 相关 举报
数据挖掘与分析_第1页
第1页 / 共36页
数据挖掘与分析_第2页
第2页 / 共36页
数据挖掘与分析_第3页
第3页 / 共36页
数据挖掘与分析_第4页
第4页 / 共36页
数据挖掘与分析_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《数据挖掘与分析》由会员分享,可在线阅读,更多相关《数据挖掘与分析(36页珍藏版)》请在金锄头文库上搜索。

1、Python 数据挖掘与分析数据收集数据整理数据描述数据分析数据处理过程数据处理过程数据获取和收集从数据源获取:From Excelimport pandas as pdimport numpy as npdata1=pd.read_excel(”filename.xlsx)#使用pandas读取excelFrom CSV#ocding:utf-8import numpy as npimport pandas as pddf00=pd.read_csv(20161009.csv,delimiter=;)From 网页: urllib urllib2 httplib httplib2 impor

2、t urllibimport redBytes = urllib.request.urlopen(http:/aaa.bbb.ccc/page).read()dStr = dBytes.decode() #在python3中urllib.read() 语句功能是将dBytes转换成Strm = re.findall(正则解析表达式, dStr) 例如:利用正则表达式例如:利用正则表达式例如:利用正则表达式例如:利用正则表达式解析表格内容解析表格内容解析表格内容解析表格内容获取并连接:#coding:utf-8import numpy as npimport pandas as pdprint

3、=lcsv=lcsv.append(pd.read_csv(20161009.csv,delimiter=;,names=date,val,name,cop,acter,directer,type)lcsv.append(pd.read_csv(20161016.csv,delimiter=;,names=date,val,name,cop,acter,directer,type)lcsv.append(pd.read_csv(20161023.csv,delimiter=;,names=date,val,name,cop,acter,directer,type)lcsv.append(pd.

4、read_csv(20161030.csv,delimiter=;,names=date,val,name,cop,acter,directer,type)print -nf=pd.concat(lcsv)print nf原理与要点:Concat的参数是一个 “列表”扩展:利用OS,浏览目录,获得 Filename List,利用遍历 Filename List,打开多个文件数据整理例如:整理、去空、去重、合并、选取、数据准备:重要准备:index,header,columnsheader-1header-2header-3header-4index-0index-1index-2index-

5、3index-4index-5index-6index-7显示各要素: 显示索引 显示列名 显示数据的值 显示数据描述数据清洗和整理例如:去空、去重、合并、选取、数据准备:显示各要素: 显示索引 df.index 显示列名 df.columns 显示数据的值 df.values 可以重构一个DataFrame扩展:rdf=pd.DataFrame(data,index=inxlst,columns=colst) 显示数据描述 df.describe ,简报数据清洗和整理去空、处理缺失:isnull(),notnull()#测试空(not null)值,返回True,Falsedropna()#

6、dropna(axis=1,how=all),按列删除 all Na,缺省为axis=0,即按行df.fillna()#填充,inpalce,不产生副本#fillna(0)填充0,fillna(c1:v1,cx:vx)利用字典x列填充v#可以利用函数:mean、random.randon等等数据清洗和整理去重:duplicated()#测试重值,返回True,Falsedrop_duplicates ()#填充,inpalce,不产生副本#可利用列名列表,可以按列删除重复#take_last=True,保留最后一个记录数据整理选择方式: 行选择 列选择 区域选择 筛选(条件选择)数据整理行选择

7、: From Head: df.head(5) df:5 From Tail: df.tail(5) df-5:-1 Select i j:dfi:j+1选取后,也是df扩展:重构一个新的DataFrame数据整理列选择: 单列: df列名 或 df.colname#不支持多列区域选择:1、行号-列名df.loc1:5, # 1-5行 全部列df.loc:,列名x,列名y#所有行的 x,y两列数据整理区域选择:2、行-列,位置df.iloc1:5,x,y #x,y组成整型列表df.iloc:,列x,列y当然可以精确到一个数据df.locr,列名,df.ilocr,c,df.iatr,c条件筛选

8、: df(df.index = u2014-01-01) & (df.val = 95) isin() 数据统计分析求票房收入均值: df.mean(columns = amount) 求票房大于3000万的影片名称: df amount3000000.filename 求票房大于3000万的影片数量: len(df amount3000000.filename)小于30000000万的票房影片数?数据统计分析票房前三甲: df.sort(columns = amount)?:?.filmname #ascending =True(default),增序sum(和)、median(中位数)、v

9、ar(方差)、std(标准差)、mean(平均数)、quantile(分位数)、min(最小)、max(最大)、describe(列数据简报)、count(非空计数)、pct_change(百分数变化)数据统计分析票房前三甲: df.sort(columns = amount)?:?.filmname #ascending =True(default),增序sum(和)、median(中位数)、var(方差)、std(标准差)、mean(平均数)、quantile(分位数)、min(最小)、max(最大)、describe(列数据简报)、count(非空计数)、pct_change(百分数变化

10、)数据分组group by 操作的执行顺序(Splitting)按照一些规则将数据分为不同的组;(Applying)对于每组数据分别执行一个函数;(Combining)将结果组合到一个数据结构中例如,分组然后求和print(objbox office.groupby(objmovie_name).size()grouped=objbox office.groupby(objmovie_name)grouped=objbox office.groupby(objdate,objmovie_name).sum()grouped=obj.groupby(objdate,objmovie_name).

11、sum()mean=grouped.mean()数据合并MergeMerge的形式 Append 加行到DataFrame同型(列相同)dataframe可添加至尾部 Concat 连接pandas对象 concat参数是列表 lcsv=lcsv.append(pd.read_csv(20161009.csv,delimiter=;,names=date,val,name,cop,acter,directer,type)lcsv.append(pd.read_csv(20161016.csv,delimiter=;,names=date,val,name,cop,acter,directer,

12、type)nf=pd.concat(lcsv)数据合并MergeMerge的形式 Join SQL类型的连接 数据合并MergeMerge的形式 Merge的参数 数据可视化Matplotlib绘图主要用于二维绘图 画图质量高 方便快捷的绘图模块 绘图APIpyplot模块 集成库pylab模块(包含NumPy和 pyplot中的常用函数)数据可视化Matplotlib绘图import numpy as npimport matplotlib.pyplot as pltls_x=0,1,2,3,4,5,6,7ls_y=1,2,11,5,6,8,10,12plt.plot(ls_x,ls_y)p

13、lt.show()数据可视化Matplotlib绘图import numpy as npimport matplotlib.pyplot as pltt=np.arange(0.,4.,0.1)plt.plot(t,t,t,t+2,t,t*2)plt.show()数据可视化绘图样式 文字和字体属性 坐标轴和网格属性 子图(axes) 子区(subplots) 色彩和样式 线宽 每英寸点数图像大小pl.figure(figsize=(8,6),dpi=100)数据可视化 import numpy as npimport matplotlib.pyplot as pltls_x=0,1,2,3,4

14、,5,6,7ls_y=1,2,11,5,6,8,10,12plt.plot(ls_x,ls_y)plt.title(picture title)plt.xlabel(x label)plt.ylabel(y label)plt.show()#plt.plot(ls_x,ls_y,g-)数据可视化 上图的绘制命令:plt.1(list_i,list_o,2)1,2填什么?数据可视化 import matplotlib.pyplot as pltimport numpy as npt=np.arange(0.,4.,0.1) plt.plot(t,t,color=red,linestyle=-,l

15、inewidth=3,label=t) plt.plot(t,t+2,color=green,linestyle=:,marker=*,linewidth=3,label=t+2) plt.plot(t,t*2,color=blue,linestyle=,marker=+,linewidth=3,label=t*2) plt.legend(loc=upper left)plt.show()#loc=best数据可视化 import numpy as npimport matplotlib.pyplot as pltls_x=0,1,2,3,4,5,6,7ls_y=1,2,11,5,6,8,10

16、,12plt.plot(ls_x,ls_y) #plt.bar(ls_x,ls_y)plt.title(picture title)plt.xlabel(x label)plt.ylabel(y label)plt.show()数据可视化 子图-subplots(便于比较) 数据可视化 子图-subplots(便于比较) import matplotlib.pyplot as pltimport numpy as np#pl.figure(figsize=(8,6),dpi=100)t=np.arange(0.,4.,0.1) plt.subplot(211)plt.plot(t,t,colo

17、r=red,linestyle=-,linewidth=3,label=t) plt.subplot(212)plt.plot(t,t+2,color=green,linestyle=:,marker=*,linewidth=3,label=t+2) plt.plot(t,t*2,color=blue,linestyle=,marker=+,linewidth=3,label=t*2) plt.legend(loc=upper left)plt.show()数据可视化 子图-subplots(便于比较) 扩展:用2*2子图的方式绘制:a*X,a*X+ba*3a*x*2+b*x+c四种曲线要求,

18、颜色、线型不同子图都带图例数据可视化Pandas绘图#ocding:utf-8import numpy as npimport pandas as pdimport matplotlib.pyplot as pltdf00=pd.read_csv(20161009.csv,delimiter=;,header=None)choi=df00.iloc:,1print choichoi.plot()plt.show()数据可视化Pandas绘图 的属性控制#ocding:utf-8import numpy as npimport pandas as pdimport matplotlib.pypl

19、ot as pltdf00=pd.read_csv(20161009.csv,delimiter=;,header=None)choi=df00.iloc:,1print choichoi.plot(color=g,marker=D,label=film) #choi.plot()plt.show()数据可视化Pandas绘图 的属性控制choi.plot(color=g,marker=D,label=film) #choi.plot()Kind:bar,barh,sactterx:xlabely:ylabeltilte:figure titlelabel:图例标识练习:分别找出2016年男性

20、、女性观众评价最高的电影,以周为单位在图中用不同颜色和图例画出它们在全档期票房收入的折线图,需要图例。plt.subplot(211)plt.plot(t,t,color=red,linestyle=-,linewidth=3,label=t) plt.subplot(212)plt.plot(t,t+2,color=green,linestyle=:,marker=*,linewidth=3,label=t+2) plt.plot(t,t*2,color=blue,linestyle=,marker=+,linewidth=3,label=?) plt.legend(loc=upper left)给大家拜年祝大家春节快乐

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号