Python实现的微信好友数据分析功能示例


Posted in Python onJune 21, 2018

本文实例讲述了Python实现的微信好友数据分析功能。分享给大家供大家参考,具体如下:

这里主要利用python对个人微信好友进行分析并把结果输出到一个html文档当中,主要用到的python包为itchatpandaspyecharts

1、安装itchat 微信的python sdk,用来获取个人好友关系。获取的代码 如下:

import itchat
import pandas as pd
from pyecharts import Geo, Bar
itchat.login()
friends = itchat.get_friends(update=True)[0:]
def User2dict(User):
  User_dict = {}
  User_dict["NickName"] = User["NickName"] if User["NickName"] else "NaN"
  User_dict["City"] = User["City"] if User["City"] else "NaN"
  User_dict["Sex"] = User["Sex"] if User["Sex"] else 0
  User_dict["Signature"] = User["Signature"] if User["Signature"] else "NaN"
  User_dict["Province"] = User["Province"] if User["Province"] else "NaN"
  return User_dict
friends_list = [User2dict(i) for i in friends]
data = pd.DataFrame(friends_list)
data.to_csv('wechat_data.csv', index=True)

2、对获取到的数据进行分析。

主要分析了男女比例,以及好友所在城市分布,并且在地图上面展示了微信好友的分布情况。另外其他的数据读者可以自己去分析,这里只是提供一个引导而已。

import pandas as pd
from pyecharts import Geo, Bar
def Cal_mVw(data):
  result = {}
  for i in data:
    if i == 1:
      result["man"] = result.get("man", 0) + 1
    elif i == 2:
      result["woman"] = result.get("woman", 0) + 1
    else:
      result["unknown"] = result.get("nunknown", 0) + 1
  return result
def count_city(data):
  result = {}
  for i in data:
    if data is not "NaN" or data is not "nan":
      result[i] = result.get(i, 0) + 1
  return result
data1 = pd.read_csv('wechat_data.csv', encoding='GBK')
manVSwoman=Cal_mVw(data1["Sex"])
#print(manVSwoman)
bar = Bar("个人微信好友男女比例")
bar.add("男女人数", ["男", "女", "不详"], [139, 75, 1])
bar.render()
city=count_city(data1["City"])
geo = Geo("微信好友分布", "", title_color="#fff", title_pos="center",
width=1200, height=600, background_color='#404a59')
#attr, value = geo.cast(city)
geo.add("", city.keys(), city.values(), visual_range=[0, 30], visual_text_color="#fff", symbol_size=15, is_visualmap=True)
geo.show_config()
geo.render()

男女比例画出来的图如下所示

Python实现的微信好友数据分析功能示例

获取到的好友分布情况如下图所示:

Python实现的微信好友数据分析功能示例

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
在Python的Django框架中编写错误提示页面
Jul 22 Python
Python代码解决RenderView窗口not found问题
Aug 28 Python
python3实现ftp服务功能(客户端)
Mar 24 Python
详解Python 数据库的Connection、Cursor两大对象
Jun 25 Python
python绘制直方图和密度图的实例
Jul 08 Python
Python 占位符的使用方法详解
Jul 10 Python
Python画图高斯分布的示例
Jul 10 Python
pip 安装库比较慢的解决方法(国内镜像)
Oct 06 Python
Python 装饰器@,对函数进行功能扩展操作示例【开闭原则】
Oct 17 Python
将python文件打包exe独立运行程序方法详解
Feb 12 Python
Python使用sys.exc_info()方法获取异常信息
Jul 23 Python
PyQt 如何创建自定义QWidget
Mar 24 Python
python skimage 连通性区域检测方法
Jun 21 #Python
python3实现windows下同名进程监控
Jun 21 #Python
python检测主机的连通性并记录到文件的实例
Jun 21 #Python
Python基于xlrd模块操作Excel的方法示例
Jun 21 #Python
python实现自动发送报警监控邮件
Jun 21 #Python
Python中list查询及所需时间计算操作示例
Jun 21 #Python
python监控文件并且发送告警邮件
Jun 21 #Python
You might like
Classes and Objects in PHP5-面向对象编程 [1]
2006/10/09 PHP
php实现的获取网站备案信息查询代码(360)
2013/09/23 PHP
php通过session防url攻击方法
2014/12/10 PHP
php实现在限定区域里自动调整字体大小的类实例
2015/04/02 PHP
yii框架redis结合php实现秒杀效果(实例代码)
2017/10/26 PHP
以JSON形式将JS中Array对象数组传至后台的方法
2014/01/06 Javascript
jquery操作下拉列表、文本框、复选框、单选框集合(收藏)
2014/01/08 Javascript
js判断登录与否并确定跳转页面的方法
2015/01/30 Javascript
angularjs创建弹出框实现拖动效果
2020/08/25 Javascript
AngularJS基础 ng-disabled 指令详解及简单示例
2016/08/01 Javascript
JavaScript实现封闭区域布尔运算的示例代码
2018/06/25 Javascript
jQuery插件实现的日历功能示例【附源码下载】
2018/09/07 jQuery
详解用async/await来处理异步
2019/08/28 Javascript
[56:42]VP vs RNG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
实践Python的爬虫框架Scrapy来抓取豆瓣电影TOP250
2016/01/20 Python
Python解析树及树的遍历
2016/02/03 Python
Python2中文处理纪要的实现方法
2018/03/10 Python
使用Django和Python创建Json response的方法
2018/03/26 Python
正确理解Python中if __name__ == '__main__'
2019/01/24 Python
Python中变量的输入输出实例代码详解
2019/07/28 Python
python实现Pyecharts实现动态地图(Map、Geo)
2020/03/25 Python
Python面向对象魔法方法和单例模块代码实例
2020/03/25 Python
POS解决方案:MUNBYN(热敏打印机、条形码扫描仪)
2020/06/09 全球购物
工程监理应届生求职信
2013/11/09 职场文书
大学生自我鉴定评语
2014/01/27 职场文书
房地产开盘策划方案
2014/02/10 职场文书
工作会议方案
2014/05/21 职场文书
集中采购方案
2014/06/10 职场文书
过程装备与控制工程专业求职信
2014/07/02 职场文书
金融管理专业求职信
2014/07/10 职场文书
大学生考试作弊检讨书
2014/09/21 职场文书
2014年大学团支部工作总结
2014/12/02 职场文书
2015年世界艾滋病日活动总结
2015/03/24 职场文书
vue首次渲染全过程
2021/04/21 Vue.js
使用javascript解析二维码的三种方式
2021/11/11 Javascript
WinServer2012搭建DNS服务器的方法步骤
2022/06/10 Servers