加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

Python 从爬虫到数据分析

发布时间:2019-05-16 17:28:18 所属栏目:建站 来源:大鹏
导读:各人好,我是大鹏,都市数据连合合提倡人,致力于Python数据说明、数据可视化的应用与解说。 和许多同窗打仗进程中,我发明自学Python数据说明的一个难点是资料繁多,过于伟大。大部门网上的资料老是从Python语法教起,混合着大量Python开拓的常识点,花了

由于dict的存储不是凭证list的方法次序分列,以是,迭代出的功效次序很也许不是每次都一样。默认环境下,dict迭代的是key。假如要迭代value,可以用for value in d.values(),假如要同时#迭代key和value,可以用for k, v in d.items()

可以看到,字典里的人名被逐一打印出来了。for 函数的浸染就是用于遍历数据。把握for函数,可以说是真正入门了Python函数。

B.爬虫和轮回

for函数在誊写Python爬虫中常常被应用,由于爬虫常常必要遍历每一个网页,以获守信息,以是构建完备而正确的网页链接异常要害。以某票房数据网为例,他的网站信息长这样:

Python 从爬虫到数据说明

Python 从爬虫到数据说明

该网站的周票房json数据地点可以通过抓包器材找到,网址为http://www.cbooo.cn/BoxOffice/getWeekInfoData?sdate=20190114

细心调查,该网站差异日期的票房数据网址(url)只有后头的日期在变革,会见差异的网址(url)就可以看到差异日期下的票房数据:

Python 从爬虫到数据说明

我们要做的是,遍历每一个日期下的网址,用Python代码把数据趴下来。此时for函数就派上用场了,行使它我们可以快速天生多个切合前提的网址:

  1. import pandas as pd 
  2.  
  3. url_df = pd.DataFrame({'urls':['http://www.cbooo.cn/BoxOffice/getWeekInfoData?sdate=' for i in range(5)],'date' :pd.date_range(20190114,freq = 'W-MON',periods = 5)}) 
  4.  
  5. ''' 
  6. 将网址沟通的部弟子成5次,并操作pandas的时刻序列成果天生5个礼拜一对应的日期。 
  7. 其顶用到了第一部门提供的多个数据范例: 
  8. range(5)属于列表, 
  9. 'urls':[]属于字典, 
  10. pd.dataframe属于dataframe 
  11. ''' 
  12. url_df['urls'] = url_df['urls'] + url_df['date'].astype('str') 

滑动滑块可以看到完备代码和中间的注释。

Python 从爬虫到数据说明

为了利便领略,我给各人画了一个for函数的遍历进程表示图:

Python 从爬虫到数据说明

此处省略掉后续爬取进程,相干爬虫代码见文末。我们行使爬虫爬取了5800+条数据,包括20个字段,时刻席卷了从2008年1月开始至2019年2月十一年时代的单周票房、累计票房、观影人次、场均人次、场均票价、场次环比变革等信息。

3.Python怎么实现数据说明?

除了爬虫,说明数据也是Python的重要用途之一,Excel能做的事,Python毕竟怎么实现呢;Excel不能做的事,Python又是否能实现呢?操作影戏票房数据,我们别离举一个例子声名:

A.Python说明

在做好数据收罗和导入后,选择字段举办起源说明可以说是数据说明的必经之路。在Dataframe数据名目标辅佐下,这个步调变得很简朴。

好比当我们想看单周票房第一的排名别离都是哪些影戏时,可以行使pandas器材库中常用的要领,筛选出周票房为第一名的全部数据,并保存沟通影戏中周票房最高的数据举办说明清算:

  1. import pandas as pd 
  2. data = pd.read_csv('中国票房数据爬取测试20071-20192.csv',engine='python') 
  3. data[data['均匀上座人数']>20]['影戏名'] 
  4. #计较周票房第一随时刻变革的功效,导入数据,并选择均匀上座人数在20以上的影戏为有用数据 
  5.  
  6. dataTop1_week = data[data['排名']==1][['影戏名','周票房']] 
  7. #取出周票房排名为第一名的全部数据,并保存“影戏名”和“周票房”两列数据 
  8.  
  9. dataTop1_week = dataTop1_week.groupby('影戏名').max()['周票房'].reset_index() 
  10. #用“影戏名”来分组数据,沟通影戏持续霸榜的选择最大的周票房保存,其他数据删除 
  11.  
  12. dataTop1_week = dataTop1_week.sort_values(by='周票房',ascending=False) 
  13. #将数据凭证“周票房”举办降序排序 
  14.  
  15. dataTop1_week.index = dataTop1_week['影戏名'] 
  16. del dataTop1_week['影戏名'] 
  17. #清算index列,使之变为影戏名,并删掉原本的影戏名列 
  18.  
  19. dataTop1_week 
  20. #查察数据 

Python 从爬虫到数据说明

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读