【Python有趣打卡】利用pandas完成数据分析项目(二)——爬微信好友+分析

今天依然是跟着罗罗攀学习数据分析,原创:罗罗攀(公众号:luoluopan1)
Python有趣|数据可视化那些事(二)

今天主要是学习pyecharts(http://pyecharts.org/#/zh-cn/),深入学习可以看这个中文的使用文档。

PS:数据分析真的有点难,感觉学的只是工具,思维很难学,要多思考才行。

接上文:【Python有趣打卡】利用pandas完成数据分析项目(一)

数据准备

  • 目的

分析下微信好友圈的情况,包括男女分布,地区分布,再简单制作个词云。

  • itchat安装

体现python强大的地方来了——第三方库,python之所以强大一个重要的原因就是python提供了非常丰富的第三方库,意味着不需要你从橡胶、钢筋开始制作,直接给你提供轮子,脚踏板,你去组装就好了。

今天要用到的第三方库——itchat

itchat是一个开源的微信个人号接口,通过itchat可以实现消息的发送接受以及查看好友的信息等一些功能。一个库就可以方便的获取你微信的好友信息。是不是很厉害!

pip install itchat     #安装itchat包
  • 获取微信好友的基本信息,以及自己给好友的备注
import itchat
 
itchat.auto_login(hotReload=True)                 #会加载二维码,扫码登录即可
# itchat.send(u"Hello FileHelper", "filehelper")  # 将“Hello FileHelper”发送给微信的文件助手
friends = itchat.get_friends(update=True)[0:]     # 获取微信好友的信息,返回的是字典
print(friends)
  • 存储微信好友信息
import itchat
import csv
import re 

itchat.auto_login(hotReload=True)                 #会加载二维码,扫码登录即可
# itchat.send(u"Hello FileHelper", "filehelper")  # 将“Hello FileHelper”发送给微信的文件助手
friends = itchat.get_friends(update=True)[0:]     # 获取微信好友的信息,返回的是字典
fp = open(r'C:\Users\xuxiaojielucky_i\Desktop\wechat_friends.csv','w',newline='',encoding='utf-8')
writer = csv.writer(fp)
writer.writerow(['NickName','sex','Province','City','Signature'])


for i in friends:
    NickName = i['NickName']
    sex = i['Sex']
    Province = i['Province']
    City = i['City']
    pattern = re.compile('<span.*?span>')  #很多html的内容没啥意义去掉!
    Signature= re.sub(pattern, '', i['Signature'])
    print(Signature)
    writer.writerow([NickName,sex,Province,City,Signature])
    
fp.close()

数据分析

  • 性别分布
sex_count = data.groupby('sex')['sex'].count()
from pyecharts import Pie
pie = Pie('男女分布',title_pos = 'center')
pie.add("",['外星人','男','女'],
        list(sex_count),
        radius = [40,75],
        label_text_color = None,
        is_label_show = True, 
        legend_orient = "vertical",
        legend_pos ="left")
pie

在这里插入图片描述

绘制词云图

str_data = ''
for i in range(data.shape[0]):
    if type(data.iloc[i,4]) != str:
        pass
    else:
        str_data = str_data + data.iloc[i,4]
import jieba.analyse
tags = jieba.analyse.extract_tags(str_data, topK=50, withWeight=True)
label=[]
attr = []
for item in tags:
    print(item[0]+'\t'+str(int(item[1]*1000)))
    label.append(item[0])
    attr.append(int(item[1]*1000))
from pyecharts import WordCloud
wordcloud = WordCloud(width=800,height=620)
wordcloud.add("",label[6:],attr[6:],word_size_range=[20,100])
wordcloud

在这里插入图片描述
我是加了多少个代购。。。。emmmmmm。。。。。。可以清理清理微信好友了,尴尬

地图绘制

安装地图的相关包

pip install echarts-countries-pypkg
pip install echarts-china-provinces-pypkg
pip install echarts-china-cities-pypkg
pip install echarts-china-counties-pypkg
pip install echarts-china-misc-pypkg

汇聚下

province = data.groupby('province')['province'].count()

最后可视化地图

from pyecharts import Map

value = list(province)
attr = list(province.index)
map = Map('好友地区分布',width = 1200,height = 600)
map.add(
"",
attr,
value,
maptype = 'china',
is_visualmap = True,
visual_text_color = "#000",)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值