美文网首页
【爬虫】-007-Jupyter notebook简单上手-1

【爬虫】-007-Jupyter notebook简单上手-1

作者: 9756a8680596 | 来源:发表于2019-01-19 11:53 被阅读6次

案例

统计赶集网 北京地区 全部分类的发帖量,并在Jupyter notebook中绘制分类发帖量的柱状图

思路

在数据爬取之后,如果需要对数据进行分析,一般需要进行如下步骤:

  1. 一般来说就是对数据进行整理和清洗
  2. 然后,更新到数据库中
  3. 最后,将数据进行可视化操作

本文使用Jupyter notebook来进行数据可视化展示

示例代码

首先链接数据库,访问之前抓取好的赶集网北京地区二手物品类目数据

client = pymongo.MongoClient('localhost', 27017)
ceshi = client['ceshi']
item_info = ceshi['intem_info']

然后,查看类目数据,找到需要的信息,并备份数据到新的数据表中


部分二手物品类目数据

我们可以看到,前两列的数据基本没用,所以用切片处理一下,排除掉前两列数据之后存入备份好的数据表中
如下在Mongo DB中进行操作:

db.createCollection(item_info_backup)
db.item_info.copyTo('item_info_backup')

以下在Jupyter notebook中操作,查看备份数据表

item_info = ceshi['intem_info']
for i in item_info_backup.find():
    print(i['cates'])

数据,分析处理好之后,在绘制图表前,先来看看一个示例代码

series = [{
    'name': 'Mac',
    'data': [10],
    'type': 'column'
},{
    'name': 'Win',
    'data': [20],
    'type': 'column'
},{
    'name': 'Unix',
    'data': [1],
    'type': 'column'
}]
charts.plot(series, show='inline', options=dict(title=dict(text='Operating systems')))
操作系统统计示例

我们需要做的便是寻找series中的数据便可以绘制二手物品类目的柱状图统计。
通过观察类目数据,发现一级类目信息是列表的第一个元素,后面的是二级级三级类目。因为需要统计一级类目有多少个吗可以用到集合set()来进行去重

cates_index_temp = []
for i in item_info_backup.find():
    cates_index_temp.append(i['cates'][0])
cates_index = list(set(cates_index_temp))
print(cates_index)

这样操作后,去重后的一级类目信息存储在列表cates_list中

然后,需要根据统计不同一级类目的发帖量,这里可以根据一级出现的次数来完成操作。

cates_index_counts = []
for i in cates_index:
    cates_index_counts.append(cates_index_temp.count(i)) 
print(cates_index_counts)

在所有类目信息中,统计符合一级类目的个数即可。

接下来需要构建seris的数据,可以使用yield来进行

def data_gen(types):
    length = 0
    if length <= len(cates_index):
        for index, counts in zip(cates_index, cates_list_temp):
            data = {
                'name': index,
                'data': [counts],
                'type': types,
            } 
            yield data
            length = length + 1

函数返回的是可迭代对象,需要把每个元素取出来放到绘图函数中使用

series = [i for i in data_gen('column')]
charts.plot(series, show='inline', options=dict(title=dict(text='Catelogs for pre-owned items')))
最后结果如图所示 分类统计结果图.png

相关文章

网友评论

      本文标题:【爬虫】-007-Jupyter notebook简单上手-1

      本文链接:https://www.haomeiwen.com/subject/mdeadqtx.html