您的位置:首页 > 大数据

微信朋友圈里的大数据

2017-08-04 13:18 218 查看
“ 清理下[微笑],不用回。

相信大家在微信上一定被上面的这段话刷过屏,群发消息应该算是微信上流传最广的找到删除好友的方法了。但群发消息不仅仅会把通讯录里面所有的好友骚扰一遍,而且你还得挨个删除好几百个聊天记录,回复大家的疑问和鄙视。

大约一年前,网上流传一段python代码,查看被删的微信好友。原理就是新建群组,如果加不进来就是被删好友了。我也执行过。但是正如程序里面所提示的,查询结果可能会引起一些心理上的不适,请小心使用。

本文会另辟蹊径,通过调用微信接口,分析微信朋友的信息数据,能够分析拉黑的,搞微商的,性别分布,城市分布,省份分布等。

调用一个微信接口 itchat来操作微信

先看下官方介绍: itchat是一个开源的微信个人号接口,使用python调用微信从未如此简单。

import itchat

# 先登录
itchat.auto_login(hotReload=True)

def getFriends():
return itchat.get_friends(update=True)[0:]


调用一下函数getFriends()就能得到朋友信息列表了



有了这些数据,就可以做分析了。

用pandas得到一个二维数组,去掉作用不大的数据列,如:

‘Alias’, ‘VerifyFlag’, ‘HideInputBarFlag’, ‘UniFriend’, ‘Uin’, ‘Statues’, ‘StarFriend’, ‘UserName’, ‘AppAccountFlag’, ‘ChatRoomId’, ‘DisplayName’, ‘EncryChatRoomId’ 等作用不大的数据。

然后按照我们想要的数据分组:

if __name__ == '__main__':
friends = getFriends()
friends_df = pd.DataFrame(list(friends))
friends_df.dropna(axis=1, inplace=True)

droped_cloum = ['Alias', 'VerifyFlag', 'HideInputBarFlag', 'UniFriend', 'Uin', 'Statues', 'StarFriend', 'UserName',
'AppAccountFlag', 'ChatRoomId', 'DisplayName', 'EncryChatRoomId', 'HeadImgUrl', 'MemberCount',
'OwnerUin', 'MemberList', 'PYInitial', 'Signature', 'SnsFlag', 'PYQuanPin', 'KeyWord',
'RemarkPYInitial', 'RemarkPYQuanPin']
drop_cloums(friends_df, droped_cloum)
friends_df.to_csv("friends.csv")

city = friends_df.groupby('City').size()
province = friends_df.groupby('Province').size()
sex = friends_df.groupby('Sex').size()
print(city)
print(province)
print(sex)


结果:



用图像展现出来

sex.plot(kind='pie', subplots=True, autopct='%.2f', figsize=(4, 4), title="Sex",legend = True)  # 显示百分比
plt.show()




1是男,2是女,0是没有填写的。

展示省份分布:

plt.xticks(np.arange(len(province.index)), province.index, fontproperties=font)
plt.show(province.plot(kind='bar'))




Mac上plot处理中文没处理好。

因为怕有些心理的不适,这里没有统计拉黑的名单。但是很容易得到的,字段”UniFriend”。

统计分析签名,能分析部分微商出来。这里也没有去统计了。

一个小小的朋友圈,也能折射人间百态。淡定淡定!

更多精彩,请关注微信公众号: python爱好部落
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  大数据 python 微信