使用python进行简单的数据分析

前言

之前写了一个简单的python爬虫,爬取了赶集网上二手物品的的大概2000条数据,代码已经写完好久了,今天通过对商品数据中所处地区的分析,做一个简单数据分析。

工具&环境

  • python 3.6
  • jupyter notebook
  • Mongodb

准备工作

首先,导入我们所需要的包,其中charts是图表绘制的相关的python包。之后,再通过pymongo连接本地数据库。

import pymongo
import types
import charts
from string import punctuation
#连接数据库
client = pymongo.MongoClient('localhost',27017)
ganji = client['ganji_data']
url_list = ganji['url_list']
item_info = ganji['item_info']

现在我们可以通过简单的一行代码查看前300条数据集的地区信息

for i in item_info.find().limit(300):
    print(i['area'])
地区信息.PNG

数据整理

因为数据比较多,数据格式不统一,为了减少错误,可以通过简单的代码,对数据格式进行整理与清洗。具体代码如下所示:

 for i in item_info.find():
        if isinstance(i['area'],str):
             item_info.update_one({'_id':i['_id']},{'$set':{'area':i['area'].split('-')}})

对数据格式进行简单清洗之后,接下来要做的就是重新生成一个由地区信息重新组成的新的列表。去除重复信息,可以看到地区信息如下:

item_list = []
for i in item_info.find():
    item_list.append(i['area'][0])
area_index = list(set(item_list))
print(area_index)
    
地区列表.PNG

现在,重新查看数据中个地区出现的次数,如下:

post_times = []
for index in area_index:
    post_times.append(item_list.count(index))
print(post_times)
地区数量.PNG

因为charts包中的绘图函数参数有特定的格式,所以,需要定义一个可以生成字典格式的函数,在这个函数中,通过yield返回一种新的的数据格式。其实,简单来说,就是通过zip函数生成由地区信息和地区出现次数所组成的字典。


def data_gen(types):
    length = 0
    if length <= len(area_index):
        for area,times in zip(area_index,post_times):
            data = {
                'name':area,
                'data':[times],
                'type':types
            }
            yield data
            length = length + 1
            
               

调用函数,出现如下信息,说明data_gen()函数能够成功运行。

data_gen('column')

传入column参数,返回信息如下:


返回值.PNG

现在,重新遍历数据,可以发现,返回字典形式的数据结构,其中,name代表地区信息,data代表地区出现的次数,type是我们传入的参数。

for i in data_gen('column'):
    print(i)
数据整理之后的信息.PNG

数据可视化分析

做完之前的准备工作,可以利用charts包进行简单的可视化分析了,通过简单的分析,可以看到,出货量最大的城市是北上广深,不愧是一线城市!

series = [data for data in data_gen('column')]
charts.plot(series,show='inline',options = dict(title = dict(text = 'This is genji data')))
可视化分析.PNG
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容