如果有需要源码的可以关注微信公众号「一行数据」,后台回复"1023",可以获得全套代码直接运行哦
-
你知道你的微信好友男生多还是女生多吗,(单身?应该能立马答出来吧)
-
你知道你的微信好友都是什么性格吗,话说你的工资大体是你最好的五个朋友的平均数(可以视情况去除一个最高值和最低值,万一人家拆迁了),那性格是不是大多也可以这么推理呢
-
你知道你的好友签名正能量多还是负能量多吗,
-
你知道你的好友全国分布吗
不,你不知道
知道了还怎么看我下面的文章
通过安装第三方工具包itcaht,我们可以通过二维码登陆微信,然后获得我们的好友信息,如下图所示
itchat.auto_login(hotReload=False)
friends = itchat.get_friends(update=True)
然后获取你所有friends的数据,我们可以看到数据是以字典形式呈现的,第一个元素是当前用户。所以,在下面的数据分析流程中,我们始终取friends[1:]作为原始输入数据,集合中的每一个元素都是一个字典结构,以我本人为例,可以注意到这里有Sex、City、Province、HeadImgUrl、Signature这四个字段,我们下面的分析就从这四个字段入手:
1.微信好友性别分布
首先分析好友性别,可以从friends中的Sex中提取出来,然后统计出来男性,女性和未知性别分别有多少,由于小编的好友都是编程爱好者,所以男性占了绝大部分,当然热爱编程的女性好友也是有一定数量滴,可以大致了解在互联网行业男女的比例了,男女比例5:1,按照法定夫妻1:1配比,那么还有剩下的4分男生可以。。。。。当我没说
一行数据好友性别分布
def analyseSex(firends):
sexs = list(map(lambda x: x['Sex'], friends[1:]))
counts = Counter(sexs).items()
counts = sorted(counts, key=lambda x: x[0], reverse=False)
counts = list(map(lambda x: x[1], counts))
labels = ['女性', '男性', '未知']
colors = ['red', 'yellowgreen', 'lightskyblue']
plt.figure(figsize=(8, 5), dpi=80)
plt.axes(aspect=1)
plt.pie(counts,
labels=labels,
colors=colors,
labeldistance=1.1,
autopct='%3.1f%%',
shadow=False,
startangle=90,
pctdistance=0.6
)
plt.legend(loc='upper right', )
plt.title(u'%s的微信好友性别组成' % friends[0]['NickName'])
plt.show()
2.微信好友头像分析
分析好友头像,从两个方面来分析,第一,在这些好友头像中,使用人脸头像的好友比重有多大;第二,从这些好友头像中,可以提取出哪些有价值的关键字。这里需要根据HeadImgUrl字段下载头像到本地,然后通过腾讯优图提供的人脸识别相关的API接口,检测头像图片中是否存在人脸以及提取图片中的标签。其中,前者是分类汇总,我们使用饼图来呈现结果;后者是对文本进行分析,我们使用词云来呈现结果。
通过者篇文章从微信头像看出你的性格
-
没太刻意选择过的生活照作头像
这类人对自己的接纳度比较高,对外貌也比较有自信,不一定长得好看,但是能接纳自己的本来面目。内心没藏太多秘密,也没做过什么见不得人的事儿,在网络世界和现实世界中差别不大。
-
用风景美图作头像