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中使用PyQt把网页转换成PDF操作代码实例
Apr 23 Python
python中的代码编码格式转换问题
Jun 10 Python
浅述python中argsort()函数的实例用法
Mar 30 Python
Python编程对列表中字典元素进行排序的方法详解
May 26 Python
Python虚拟环境virtualenv的安装与使用详解
May 28 Python
Python 装饰器使用详解
Jul 29 Python
快速查询Python文档方法分享
Dec 27 Python
详解Django中类视图使用装饰器的方式
Aug 12 Python
Python给定一个句子倒序输出单词以及字母的方法
Dec 20 Python
Python利用神经网络解决非线性回归问题实例详解
Jul 19 Python
python函数不定长参数使用方法解析
Dec 14 Python
Python如何将模块打包并发布
Aug 30 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
php 什么是PEAR?
2009/03/19 PHP
PHP把小数转成整数3种方法
2014/06/30 PHP
windows7下安装php的php-ssh2扩展教程
2014/07/04 PHP
php文件上传简单实现方法
2015/01/24 PHP
用dom+xhtml+css制作的一个相册效果代码打包下载
2008/01/24 Javascript
javascript中的parseInt和parseFloat区别
2013/07/12 Javascript
完美解决AJAX跨域问题
2013/11/01 Javascript
jQuery异步验证用户名是否存在示例代码
2014/05/21 Javascript
jQuery实现冻结表头的方法
2015/03/09 Javascript
jQuery Ajax 实现分页 kkpager插件实例代码
2017/08/10 jQuery
JS实现合并json对象的方法
2017/10/10 Javascript
Nodejs处理异常操作示例
2018/12/25 NodeJs
react koa rematch 如何打造一套服务端渲染架子
2019/06/26 Javascript
微信小程序实现手指拖动选项排序
2020/04/22 Javascript
Electron实现应用打包、自动升级过程解析
2020/07/07 Javascript
[02:57]2014DOTA2国际邀请赛-观众采访
2014/07/19 DOTA
Python使用scrapy抓取网站sitemap信息的方法
2015/04/08 Python
python 以16进制打印输出的方法
2018/07/09 Python
详解如何为eclipse安装合适版本的python插件pydev
2018/11/04 Python
pygame游戏之旅 python和pygame安装教程
2018/11/20 Python
浅谈Python中的全局锁(GIL)问题
2019/01/11 Python
初探利用Python进行图文识别(OCR)
2019/02/26 Python
Python直接赋值、浅拷贝与深度拷贝实例分析
2019/06/18 Python
python中使用ctypes调用so传参设置遇到的问题及解决方法
2019/06/19 Python
pip安装提示Twisted错误问题(Python3.6.4安装Twisted错误)
2020/05/09 Python
Python是什么 Python的用处
2020/05/26 Python
python实例化对象的具体方法
2020/06/17 Python
英国男士时尚网站:Dandy Fellow
2018/02/09 全球购物
为奢侈时尚带来了慈善元素:Olivela
2018/09/29 全球购物
法人代表授权委托书
2014/04/08 职场文书
党员反对四风问题思想汇报
2014/09/12 职场文书
科技活动周标语
2014/10/08 职场文书
小学优秀学生评语
2014/12/29 职场文书
如何使用Tkinter进行窗口的管理与设置
2021/06/30 Python
Nginx进程调度问题详解
2021/09/25 Servers
html中两种获取标签内的值的方法
2022/06/10 HTML / CSS