欢迎python爱好者加入:学习交流群 667279387

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

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爱好者加入:学习交流群 667279387

最新文章

  1. java基础练习 字符串,控制流,日历,日期等
  2. SharePoint 2013 使用JavaScript对象模型配置智能提示
  3. U盘启动 WinPE系统维护工具 任意安装GHO/WIM/ESD系统映像 无广告专业版
  4. GitHub上删除项目
  5. Sql Server按树形结构排序查询表记录
  6. JVM-对象的存活与死亡
  7. java积累
  8. 运维技巧-Nginx日志格式
  9. 分布式配置管理平台XXL-CONF
  10. poj 2253 floyd最短路
  11. function Language
  12. sqoop的基本语法详解及可能遇到的错误
  13. Windbg SOS 加载技巧(.net framwork 2.0)
  14. mysql修改root用户的登录密码
  15. B - Birthday Boy Gym - 102007B
  16. Java编写email实现内容换行
  17. 查询 EBS 系统物料净重、毛重
  18. LeetCode OJ:Insert Interval
  19. web请求的状态码
  20. 【好文收藏】javascript中event对象详解

热门文章

  1. Vue躬行记(9)——Vuex
  2. 本地Git连接GitLab(服务器)远程仓库
  3. SpringBoot 源码解析 (六)----- Spring Boot的核心能力 - 内置Servlet容器源码分析(Tomcat)
  4. TCP/IP网络基础知识
  5. PHP 的面向对象 与 类
  6. HTML_本地存储
  7. Oracle10g安装步骤(一)
  8. 物联网架构成长之路(47)-利用GitLab实现CI持续集成
  9. Java基础IO类之字节输入输出流
  10. fastjson自定义序列化竟然有这么多姿势?