資料分析之 微信好友分析

2021-08-14 14:51:02 字數 3506 閱讀 1696

itchat包的api列表

在命令終端輸入:

pip install itchat
import itchat
friends = itchat.get_friends(update=true)
返回乙個字典列表,第乙個是本人資訊。字典中的每乙個key表示乙個資訊,如:性別,暱稱。建議斷點通過pycharm預覽。

male = 0

female = 0

other = 0

# friends[0]是自己的資訊,因此我們要從[1:]開始

for i in friends[1:]:

*** = i['***'] # 注意大小寫,2 是女性, 1 是男性

if *** == 1:

male += 1

elif *** == 2:

female += 1

else:

other += 1

# 計算好友總數

total = len(friends[1:])

print('好友總數:', total)

print('男性比例:%2f%%' % (float(male) / total * 100))

print('女性比例:%2f%%' % (float(female) / total * 100))

print('未知性別:%2f%%' % (float(other) / total * 100))

列印的結果:

arr = ['1'] * male  # 男性

arr1 = ['2']*female # 女性

arr2 = ['0'] * other #未知

arr.extend(arr1)

arr.extend(arr2)

import matplotlib.pyplot as plt

plt.hist(arr)

plt.show()

上面是簡單的單項檢視,其實我們可以使用乙個資料框,一次把所要分析的資料全提出來。比如這裡,我們提取暱稱、性別、省份、城市、個性簽名。

# 提出好友的暱稱、性別、省份、城市、個性簽名,生成乙個資料框

import pandas as pd

# friends[0]是自己的資訊,因此我們要從[1:]開始

data = pd.dataframe()

columns=['nickname', '***', 'province', 'city', 'signature']

for col in columns:

val =

for i in friends[1:]:

data[col] = pd.series(val)

plt.rcparams['font.sans-serif']=['simhei']    # 如果不設定這一句,中文不顯示

plt.bar(data['province'].value_counts().index,data['province'].value_counts()) # 選擇柱狀圖,而不是直方圖。

plt.xticks(rotation=90) # 橫座標旋轉90度

plt.show()

可以看到,還是有部分愛」裝逼」的小夥伴,把地區寫到了國外去了。

接著我們看一下人數較多的廣東和湖南的具體分布情況

# 檢視好友的分布情況

gd = data[data['province']=='湖南']['city']

plt.bar(gd.value_counts().index,gd.value_counts())

plt.xticks(rotation=90)

plt.show()

毫無疑問,這個是最好玩的了。剛剛我們拿下來的資料裡有每個好友的個性簽名,接下來讓我們來看看我的小夥伴們的個性簽名有多個性吧!

把個性簽名data['signature']列印出來,發現有很多表情,還有些甚至變成了『emoji』、『span』等沒用的字樣,因此,需要使用正規表示式將這些替換掉。

import re

siglist =

for i in data['signature']:

signature = i.strip().replace('emoji','').replace('span','').replace('class','')

rep = re.compile('1f\d+\w*|[<>/=]') # 具體含義另行檢視

signature = rep.sub('', signature)

text = ''.join(siglist)

執行完,我們檢視一下text

接下來,就可以使用jb分詞,啊?不,是結巴分詞。

import jieba # 沒有安裝的話,先使用 pip install jieba 安裝

最後,圖是出來了,以我自己頭像為背景,這個頭像不太好,看起來似乎不那麼和諧。

好吧!我們來看看我都交了些什麼樣的朋友?一眼望去滿滿的正能量,有木有,踏實、努力的一大堆,也有些多愁善感的。

等等?保單?微粒?什麼鬼?哈哈,那些在本朋友圈打廣告的小夥伴,從現在開始我注意到你們了。

資料分析之微信通訊錄分析

def get self counts dict wc friends pd.dataframe self.friends wc friends.list for i in item set for s in item counts s list.count s return counts prin...

python分析微信好友簽名分析

當前其實有不少工具能夠實現我們的目的,在例子中,我採用了jieba來進行分詞,用wordcloud來生成對應的詞云,用snownlp來分析對應的情緒。關於這三種工作,不做詳細的介紹了,簡單的列一下 結巴 中文分詞 做最好的 python 中文分詞元件 jieba chinese for to stu...

python微信好友 Python簡單分析微信好友

開發工具 python版本 3.6.4 itchat模組 pandas模組 pyecharts模組。環境搭建 安裝python並新增到環境變數,pip安裝需要的相關模組即可。相關檔案 額外說明 pyecharts模組安裝時請依次執行以下命令 pip install echarts countries...