1问题的提出
前几天工作的原因需要绘制中国地图,大致是这个样子的:
然而自己画的图总是不对劲,数字无法显示在地图上,原始的数据是:
湖北省: 562
江苏省: 523
....
云南省:158
后来在群里的小伙伴的帮助下自己慢慢地知道问题所在,我们需要将每个地方的省去掉才行.
2问题的解决
Excel方法
做为一名数据分析师除了会掌握高大上的python(而且python还不是很会才用),还需要会基本的Excel. 这个问题在Excel只需要写一句简单的命令就可以了:基本命令如下:
= left(A2,LEN(A2)-1)
结果如下:
python处理
接下来自己想用python去处理这个问题,毕竟只有在实践中解决问题才会有所进步。
在python中的基本步骤为:
导入数据 处理数据 绘制图表
在数据处理部分有两种方法,这个在后面介绍:
from pandas as pd
from pyecharts.charts import Map
from pyecharts import options as opts
#数据读取
df = pd.read_excel("province.xls")
df['count'] = df['counts'].astype("int") #将count中的原来是浮点数改为整数
province = list(df['counts']) #将数据处理成列表形式
counts = list(df['counts']) #将列表处理成列表形式
#数据处理方式(一)
print([[z[0][:-1],z[1]] for z in zip(province,counts)])
#数据处理方式(二)
df['province'] = df['province'].str[0:-1]
#绘制图表
c = (
Map()
.add("各省销售数据",[[z[0][:-1],z[1]] for z in zip(province,counts)])
#写法二add.("各省销售数据",list(z) for z in zip(province,counts))
.set_global_opts(
title_opts = opts.TitleOpts(title = "香烟销量")
visualmap_opts = opts.VisualMapOpts(max_ = 200,is_piecewise = True),
)
.render("map_province.html")
)
最后的结果展示为:

3学习总结
注意编程的细节 自己虽然在看官网文档,打印出官网的数据结构,但是自己画图没有很好地掌握,多亏了小伙伴的提醒才发现问题。*要及时总结。这个问题是礼拜二出现的,但是直到现在才写完,平时应该看到马上马上记录下来,哪怕记下素材也是可以的,然后再进行处理。 总结基本的用法 上面的一些代码都是一些基本的用法,例如赋值, df['count'] = df['count'].astype('int')
基本的字符串的操作df['province'] = df['province'].str[0:-1]
这个在后面的学习中需要不断熟练操作。
往期回顾
文章转载自牛谈琴,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




