版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Python语言及其应用第8章Python数据挖掘与分析PAGE220PAGE2218.3.2习题1.简述数据获取和收集的方法。答:查阅书籍、问卷调查、互联网数据抓取等2.列举pandas支持的标准统计函数。答:min()、max()、mean()等3.列举pandas数据合并的三种方式。答:merge()、concat()、combine_first4.简述使用matplotlib库绘图的步骤。答:步骤1:创建一个图纸(figure)。步骤2:在图纸上创建一个或多个绘图(plotting)区域(也叫子图、坐标系/轴、axes)。步骤3:在plotting区域描绘点、线等各种marker。步骤4:为plotting添加修饰标签(绘图线上的或坐标轴上的)。步骤5:根据需要可以进行自定义。8.5实训实训:数据挖掘与分析一、实训目的1.了解Python进行数据处理的过程。2.掌握数据获取与收集的方法。3.学会数据清洗和整理的方法。4.了解数据统计的方法。5.能够利用可视化工具进行数据的展示。二、实训任务任务1:【爬取样本网页】样本文件为8.1.1节中的网页样本moviesample.htm,利用Python,爬取样本网页中各个电影的票房信息并计算A平台的票房平均值。程序编写于下方'''
样本文件为8.1.1节中的网页样本moviesample.htm,利用Python,爬取样本网页中各个电影的票房信息并计算A平台的票房平均值。
'''
defjudge(x):
if'万'inx:
returneval(x.replace('万',''))*10000
else:
returneval(x)
fromlxmlimportetree
importpandasaspd
withopen('moviesample.htm','r',encoding='utf-8')asf:
text=f.read()
f.close()
PrA=[]
selector=etree.HTML(text)
infoList=selector.xpath('//*[@id="box_office_live_summary"]/div/table/tbody/tr')
#print(infoList)
forlineininfoList:
name=''
count=''
rate=''
prA=''
prB=''
prC=''
prD=''
prE=''
timePrice=''
predict=''
sumPrice=''
try:
name=line.xpath('./td[1]/a/text()')[0]
count=line.xpath('./td[2]/text()')[0].split('/')[0]
rate=line.xpath('./td[2]/text()')[0].split('/')[1]
prA=line.xpath('./td[3]/text()')[0]
prB=line.xpath('./td[4]/text()')[0]
prC=line.xpath('./td[5]/text()')[0]
prD=line.xpath('./td[6]/text()')[0]
prE=line.xpath('./td[7]/text()')[0]
timePrice=line.xpath('./td[8]/text()')[0]
predict=line.xpath('./td[9]/text()')[0]
sumPrice=line.xpath('./td[10]/text()')[0]
#print(sumPrice)
except:
continue
print(
'电影名称:{},总场次:{},占比:{},A影院票房:{},B影院票房:{},C影院票房:{},D影院票房:{},E影院票房:{},实时(不含预售):{},预计:{},累积:{}'.format(name,count,
rate,prA,
prB,prC,
prD,prE,
predict,
timePrice,
sumPrice))
PrA.append(prA)
infoDict=dict(
pra=PrA
)
df=pd.DataFrame(infoDict)
df1=df['pra'].apply(judge).reset_index()
col_mean=df1[['pra']].mean()
print(df1)任务2:【利用urllib库获取yahoo财经数据】网址:/q/cp?s=%5EIXIC要求:获取页面中的“代號、名稱、現價”数据。程序编写于下方'''
网址:/q/cp?s=%5EIXIC
要求:获取页面中的“代號、名稱、現價”数据。
'''
importrequests
fromlxmlimportetree
url='/q/cp?s=%5EIXIC'
header={
'user-agent':'Mozilla/5.0(Macintosh;IntelMacOSX10_14_6)AppleWebKit/537.36(KHTML,likeGecko)Chrome/79.0.3945.130Safari/537.36Edg/79.0.309.71'
}
rul=requests.get(url,header)
text=rul.text
selector=etree.HTML(text)
infoList=selector.xpath('//*[@id="Col1-0-Components-Proxy"]/section/section/div/table/tbody/tr')
forlineininfoList:
code=line.xpath('./td[1]/a/text()')[0]
name=line.xpath('./td[2]/text()')[0]
price=line.xpath('./td[3]/text()')[0]
print('代号:{},公司名称:{},市值:{}'.format(code,name,price))任务3:【求电影平均评分】样本文件为8.1.1节中的网页样本moviesample2.htm,内容为观众对电影的评分信息,分析样本文件,完成以下任务:调用函数获取网页中观众对某部电影的打分数据,并求出平均分。程序编写于下方'''
样本文件为8.1.1节中的网页样本moviesample2.htm,内容为观众对电影的评分信息,分析样本文件,完成以下任务:
调用函数获取网页中观众对某部电影的打分数据,并求出平均分。
'''
fromlxmlimportetree
withopen('moviesample2.html','r',encoding='utf-8')asf:
text=f.read()
f.close()
selector=etree.HTML(text)
infoList=selector.xpath('//*[@class="clearfix__r_c_"]/dd/div[@class="mod_short"]')
sums=0
count=0
forlineininfoList:
score=eval(line.xpath('.//span[@class="db_pointml6"]/text()')[0])
sums+=score
count+=1
print(score)
print('该电影的平均得分:{}'.format(sums/count))任务4:【数据清洗】利用Python对数据log.csv进行清洗,清理掉所有字段中为空的脏数据,保存在clean_data.csv文件中,并统计clean_data.csv文件的行数。程序编写于下方'''
利用Python对数据log.csv进行清洗,清理掉所有字段中为空的脏数据,保存在clean_data.csv文件中,并统计clean_data.csv文件的行数。
'''
importpandasaspd
df=pd.read_csv('log.csv',delimiter=',')
df=df.dropna()
#print(len(df))
df.to_csv('clean_data.csv')
print('保存完成,该文件共:{}行'.format(df.shape[0]))任务5:【数据分析与可视化展示】对数据log.csv进行分析,用折线图画出用户6月份到10月份,每日购买、点击、加入购物车、关注的变化趋势图。程序编写于下方'''
对数据log.csv进行分析,用折线图画出用户6月份到10月份,每日购买、点击、加入购物车、关注的变化趋势图。
行为,取值范围{0,1,2,3},0表示点击,1表示加入购物车,2表示购买,3表示关注商品
'''
importpandasaspd
frommatplotlibimportpyplotasplt
defprocessingTime(x):
#year=x.split('-')[0]
month=x.split('-')[1]
returnstr(int(month))
defprocessingDay(x):
ifint(x)<10:
return'0{}'.format(x)
else:
returnstr(x)
x_data=[]
y1=[]
y2=[]
y3=[]
y4=[]
df=pd.read_csv('clean_data.csv')
df=df[['年月','日','行为']]
df['日']=df['日'].astype('str')
df['月']=df['年月'].apply(processingTime)
df['日']=df['日'].apply(processingDay)
df['月']=df['月'].apply(processingDay)
df['日期']=df['月']+'-'+df['日']
df=df[['日期','行为','月']]
df2=df[(df['日期']>='06-01')&(df['日期']<'11-01')]
df2=df2.sort_values(by=['日期'])
df_gop=df2.groupby(['月','行为']).count().reset_index()
list1=df_gop.values.tolist()
#print(df_gop)
print(list1)
#print(df2)
foriinrange(0,len(list1),4):
x_data.append('{}月'.format(list1[i][0]))
forjinrange(0,len(list1),4):
y1.appen
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年市场营销学期末考试附完整答案(网校专用)
- 2026年市场营销师培训试卷(附答案)
- 八年级物理上册“速度”概念建构与跨学科实践教学设计
- 网络数据安全管理与维护手册
- 初三化学(沪教版)实验探究专题复习教案
- 项目风险管理与紧急策略手册
- 八年级生物上册(冀少版)合理用药知识清单
- 八年级英语大单元融通·跨学科主题学习导学案
- 公司管理与工作流程规范手册
- 2026年国际市场营销模拟试卷(带答案)
- 《控制测量》课件-项目六:GNSS测量
- 高级财务会计(第4版)习题答案-周华
- 常用母材与焊材选用表
- 审计现场安全管理制度
- 甲状腺眼病的生物制剂治疗专家共识(2025)解读
- 绿色食品创业路演
- 《植物营养学氮素》课件
- 个人职级晋升申请书
- 换热机组主要技术规范x
- 《公路建设项目文件管理规程》
- VRAR技术在教育领域的应用与创新实践
评论
0/150
提交评论