将爬取的淘宝数据,用pyecharts的Geo库还原分析手机销量产地热力图

首先,将爬取的数据生成.csv文件。我将爬取的文本同时也上传到博客上,下载即可

对数据进行提取,整合

运行代码,生成render.html,直接打开。

from pyecharts import Geo
import csv
import re
            # data = [{"南京":20}]
data =[]  # data 数据在 geo 原来的模板中是列表装元祖的数据形式,我试过列表装字典的数据也是可以,因为为了整合数据的方便,我才用列表装字典的数据形式

check_city = []
#读取csv文件,将文件中的数据绘制出来
with open("手机_data.csv",encoding='utf8') as f:
    reader = csv.reader(f)
    header = next(reader)   #使读取CSV文件中不包含表头

    for i in reader:
        #爬取的数据中 城市有省加城市名,但是在geo 库中无法识别,必须统一是城市名
        if len(i[5])>2:
            city_name = i[5][-2:]
        else:
            city_name = i[5]
        # 销售量排除 万 以及 +  空 字符
        city_num = i[2]
        if city_num=="":
            continue
        num = city_num.split('万')
        if len(num)==2:
            city_num = float(num[0])*10000
        else:
            renum = re.search(r'\+',city_num)
            if renum:
                city_num = int(city_num.split('+')[0])
            else:
                city_num = int(city_num)
        one_city = {city_name:city_num}
        # 检测是否有相同出现的城市,有:销售量累加起来,无:新增。(geo data数据里只能有一个城市名)
        if city_name in check_city:
            for j in data:
                if city_name in j.keys():
                    j[city_name] += city_num
        else:
            data.append(one_city)
            check_city.append(city_name)



geo = Geo("2020-4月份某宝手机销量地热力图", "data from max_mei", title_color="#fff", title_pos="center",
width=1600, height=800, background_color='#404a59')
attr, value = geo.cast(data)
geo.add("", attr, value, visual_range=[0, 20000], visual_text_color="#fff", symbol_size=15, is_visualmap=True)
geo.show_config()
geo.render()

展示图

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值