【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 itchatitchat.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:passelse: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 Mapvalue = 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",)
【Python有趣打卡】利用pandas完成数据分析项目(二)——爬微信好友+分析相关推荐
- 利用Python和Power BI做Yelp大数据分析项目
利用Python和Power BI做Yelp大数据分析项目 项目介绍: 1.项目需求: 寻找影响用户对商户评价和评分的关键因素有哪些? 2.项目难点: 数据量比较大,数据清洗后需要重点观察的指标,如r ...
- Python语言学习:利用pandas对两列字段元素求差集(对比两列字段所有元素的异同)
Python语言学习:利用pandas对两列字段元素求差集(对比两列字段所有元素的异同) 目录 利用pandas对两列字段元素求差集(对比两列字段所有元素的异同) 输出结果 实现代码 利用pandas ...
- 数据分析pandas完成数据分析项目
[Python有趣打卡]数据分析pandas完成数据分析项目 ![](https://img-blog.csdnimg.cn/20190306201535208.png?x-oss- process= ...
- 数据分析之——微信好友分析
itchat 中午吃午饭的时候,无意间浏览到某公众号的一篇文章,是关于爬微信好友的.自从爬虫工程师转数据分析师以来,很久没玩过爬虫了,于是乎玩心一起,吃完饭之后自己便尝试起来. itchat 包,已经 ...
- 免疫组库数据分析(二):Excel 分析免疫组库数据
免疫组库数据分析(二):Excel 分析免疫组库数据 前言 在系列文章第一篇<免疫组库数据分析(一):windows 系统下MiXCR的安装和使用>讲解了5'RACE实验数据如何在Wind ...
- 真小白|一步步教你用Python抓取微信好友分析
前言 前段时间公司里有个同事发了张图片在群上,是他所有微信好友头像拼成的一张大图,我看着挺有意思,就想自己也搞一下,然后百度了下怎么抓取微信好友之类的--一搜全是用Python抓取的,之前就听说过Py ...
- Python爬微信好友头像,性别,所在地区
Python爬微信好友头像,性别,所在地区 本文适合新手(有一定基础的小白) 今天没事,用的网页版微信,于是看源码心理作怪,F12打开,研究了一下,结果发现 /斜眼笑/斜眼笑/斜眼笑 再加上,没事干, ...
- python微信好友分析_基于python实现微信好友数据分析(简单)
一.功能介绍 本文主要介绍利用网页端微信获取数据,实现个人微信好友数据的获取,并进行一些简单的数据分析,功能包括: 1.爬取好友列表,显示好友昵称.性别和地域和签名, 文件保存为 xlsx 格式 2. ...
- 原创|Python wxpy模块的有趣应用,微信机器人,微信好友分析搞定
↑↑↑关注后"星标"简说Python 人人都可以简单入门Python.爬虫.数据分析 简说Python推荐 来源:简说Python作者:老表 大家好,我是老表,今天这篇文章是两年半 ...
最新文章
- java静态分派_Java基础——重载、静态分派与动态分派
- CentOS 7.6 MySQL 8.0 RPM包方式安装及新特性介绍
- python模块导入_Python模块导入详解
- Java并发编程—为什么wait/notify操作要先获取到锁?
- 两年了,你还是那个你 | 今日最佳
- GStreamer基础教程01 - Hello World
- Python笔记(二)——python调用C/C++模块
- 搜索整理MyEclipse 快捷键
- linux磁盘扩容不影响原数据,linux 升级磁盘后扩容数据盘大小
- 【洛谷P4315】月下毛景树 树链剖分03
- 给hotmail邮箱发信(status=deferred)解决办法
- #泰坦尼克号幸存者预测
- 技法の穴をふさぐ:工数編 --技法の穴をふさぐ:工数編
- C#环形缓冲区(队列)完全实现(转)
- 36岁程序员2023年第一天上班被裁
- Android短信验证(手机号注册,绑定手机号获取验证码)实例
- 【Linux系统入侵】——SSH远程登录
- 支教生活| 在凉山最贵的快乐5毛钱
- 进程间通信(IPC -- InterProcess Communication)的五种方式
- 通过ip远程控制电脑