Python实现微信好友数据分析:itchat与pyecharts实战

闻溪
闻溪
发布时间:2026-10-14 | 4人浏览过
原创

本文详细介绍如何利用Python的itchat库登录微信并获取好友列表,结合pandas进行数据清洗,最后使用pyecharts生成男女比例柱状图和城市分布地图。通过具体代码示例,展示从数据获取到HTML报告生成的完整流程,为微信社交数据分析提供实用参考。

Python微信好友数据分析概述

本文分享一个基于Python的微信好友数据分析实例,供读者参考学习。

该方案主要使用Python对个人微信好友数据进行解析,并将分析结果导出为HTML文档。实现过程中主要依赖itchat、pandas以及pyecharts等Python库。

获取微信好友数据

第一步是安装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)

数据分析与可视化实现

第二步是对获取到的数据进行深入分析。

分析重点包括好友的性别比例以及所在城市的地理分布,并在地图中直观展示微信好友的城市分布情况。其他维度的数据分析可由读者自行拓展,此处仅作为入门引导。


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字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》。

希望本文提供的代码和思路能对您的Python编程实践有所帮助。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表