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

2021-08-07 05:00:17 字數 4100 閱讀 7039

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

# print(counter(***))

defplot_***

(self):

counts = self.get***()

# x_label = ['ubnknow', 'male', 'female']

x_label = ['0', '1', '2']

y_label =

for i in counts:

plt.xticks((0,1,2),("unknow", "male", "female"))

# plt.bar(range(len(y_label)), y_label, width='0.35', tick_label = x_label, color = 'rgb')

plt.bar(range(len(y_label)), y_label, width=0.7, color = 'byg')

plt.xlabel("***")

plt.ylabel('number')

plt.title('*** analysis')

# plt.xlabel(u"性別", fontproperties=font)

# plt.ylabel(u'數目', fontproperties=font)

# plt.title(u'性別分布', fontproperties=font)

for a,b in zip(x_label, y_label):

plt.text(a, b, '%.0f'%b, ha= 'center', va='bottom',fontsize = 7)

plt.show()

這塊是對性別的乙個分析,用matplotlib畫圖得到如下:

我是很想知道那21個是不是可男可女的?好可怕我竟然有這麼多奇怪的好友,男生190,女生129,還不錯,爭取今年結束時女生數可以超過男生數(逃。

接下來是對好友地域的分析,**如下:

def

get_province

(self):

provinces_pd = pd.dataframe(self.friends).province

provinces_only = set(provinces_pd)

provinces_counts = dict()

provinces_numbers =

for i in provinces_pd:

for j in provinces_only:

provinces_counts[j] = provinces_numbers.count(j)

return provinces_counts

defplot_province

(self):

counts = self.get_province()

# python3裡面object.keys()返回的不是乙個可定位的集合,所以要用list轉換

keys = list(counts.keys())

# print(type(keys))

counts_split_space = dict()

for k in keys[1:len(counts)]:

counts_split_space[k] = counts[k]

#這裡是reverse,不是reversed

counts_sorted = sorted(counts_split_space.items(), key= lambda d: d[1], reverse=true)

provinces_name =

provinces_number =

print(type(counts_sorted))

for i in counts_sorted[:10]:

# print(provinces_name)

# print(provinces_number)

colors = ['red', 'yellow', 'blue', 'green']

explode = (0.05,0,0,0,0,0,0,0,0,0)

plt.pie(provinces_number, explode = explode, labels= provinces_name, colors= colors, labeldistance=1.1,

autopct='%3.0f%%', shadow=false, startangle=90, pctdistance= 0.8)

plt.axis('equal')

# plt.legend(loc='upper left', bbox_to_anchor=(-0.1, 1))

plt.grid()

plt.show()

解釋一下,因為地域中來自「火星」的好友比較一些,有些地域基本上個數就是乙個,還有大概50多位好友在地域這一欄是選擇空的,基於以上兩點,刨去了地域為空以及地域分布人數極少的地域,選取了人數排名前十位的地域,分析如下:

有沒有猜出我的家鄉在哪,哈哈哈

最後是對簽名乙個詞云分析,**如下:

def

get_whatsup

(self):

signatures = pd.dataframe(self.friends).signature

regex1 = re.compile('')

# 匹配兩個以上佔位符。

regex2 = re.compile('\s')

# 用乙個空格替換表情和多個空格。

wc = wordcloud(background_color='white', # 設定背景顏色

mask=background_image, # 設定背景

max_words=2000, # 設定最大現實的字數

font_path='stfangso.ttf',

# font_path='font2.ttf',

stopwords=stopwords, # 設定停用詞

max_font_size=50, # 設定字型最大值

random_state=30, # 設定有多少種隨機生成狀態,即有多少種配色方案

)wc.generate(word_space_split)

image_colors = imagecolorgenerator(background_image)

wc.recolor(color_func=image_colors)

plt.imshow(wc)

plt.axis('off')

plt.show()

資料分析之 微信好友分析

itchat包的api列表 在命令終端輸入 pip install itchatimport itchatfriends itchat.get friends update true 返回乙個字典列表,第乙個是本人資訊。字典中的每乙個key表示乙個資訊,如 性別,暱稱。建議斷點通過pycharm預覽...

通訊錄 我的微信通訊錄整理心得

找不到人?比如 想找一下幾個月前在朋友聚會上認識的那個女生,結果 朋友疏遠 隨著時間的流失,原來特別要好的朋友靜靜躺在通訊錄裡,然後漸漸失去聯絡 雜亂無章 同乙個姓氏擠滿了同學 同事 朋友 不知道哪兒來的朋友,眼花繚亂看得人頭皮發麻,連自己都不願多看幾眼,更別說快速尋找 如果你的通訊錄只有幾十個或是...

通訊錄源程式分析

1 linkmanmodels類庫 1 linkmanmodels類庫,首先建立這樣乙個類庫,包括兩個檔案,person.cs和friendgroup.cs,分別定義了類person 僅包括有關 人 的屬性 和類friendgroup 有關 組 的屬性 2 model定義業務實體,它是傳遞各種資料的...