python數(shù)據(jù)分析--微信中的故事

這幾天研究了下python中操作微信的一個有趣的包际看,itchat,發(fā)現(xiàn)該包很有性格矢否,[呲牙]仲闽,隨即,便引出了如下一段故事僵朗。赖欣。。验庙。

話說顶吮,公元2018年,深夏粪薛,在華夏魔都郊區(qū)的一個小房子里悴了,一位青年,赤裸著上身汗菜,指尖鏗鏘有力的撞擊著機械鍵盤让禀,發(fā)出咔咔咔咔的聲音,身旁的煙灰缸里一絲絲青煙繚繞陨界。思想搖曳在不知名的遠方巡揍。。菌瘪。(實在編不下去了腮敌,哈哈哈)

閑言少敘,先上張圖俏扩。


image.png

言歸正傳糜工。python的itchat這個包,可以獲取到自己微信好友的基本信息录淡,包括捌木,微信名稱,性別嫉戚,省市刨裆,個性簽名澈圈,通過這些數(shù)據(jù)結合pandas便可以分析微信好友的性別占比,省市分部帆啃,并用好友的微信名稱和個性簽名做圖云瞬女。

第一步,先引入包

import itchat
import csv
import pandas as pd
from do_plot import Itchar_friend #在另一個文件中寫了一個類努潘,主要實現(xiàn)了一些作圖的函數(shù)接口
#在另一個文件中引入
import pandas as pd
import matplotlib.pyplot as plt
from wordcloud import WordCloud

第二步诽偷,,獲取好友信息疯坤,并寫入到csv中(其實不用的报慕,只是這樣做,可以在調試的過程中不用一次一次登錄微信)

friends_items = []
itchat.login()#微信登錄
friends = itchat.get_friends()#獲取所有微信信息
print(friends)
for frident in friends:#從返回的信息中獲取好友NickName,Sex,Province,City,Signature信息
    friends_item = get_some_vlaue(frident)
    friends_items.append(friends_item)
print(friends_items)

用get_friends()獲取的數(shù)據(jù)信息压怠,很凌亂卖子,包含太多東西,如下:


image.png

我們從數(shù)據(jù)中獲取如下有效信息并保存在列表friends_items 中
代碼如下:

def get_some_vlaue(friend):
        friend_dict = {}
        NickName = friend['NickName']
        Signature = friend['Signature']
        Sex = friend['Sex']
        Province = friend['Province']
        City = friend['City']
        friend_dict['NickName'] = NickName
        friend_dict['Signature'] = Signature
        friend_dict['Sex'] = Sex
        friend_dict['Province'] = Province
        friend_dict['City'] = City
        return friend_dict

寫入csv(此步為調試方便)刑峡,傳入列表,轉換為字典玄柠,用pandas的方法寫入到csv中突梦。

def save_csv(friend_dict):
    friend_header = friend_dict[0].keys()
    NickName = []
    Signature = []
    Sex = []
    Province = []
    City = []
    for friend in friend_dict:
          NickName.append(friend['NickName'])
        Signature.append(friend['Signature'])
        Sex.append(friend['Sex'])
        Province.append(friend['Province'])
        City.append(friend['City'])
    data = {'NickName': NickName, 'Sex': Sex, 'Province': Province,
        'City': City, 'Signature': Signature}
    frame = pd.DataFrame(data)
    frame.to_csv('frident.csv',index=True)
    return frame

第三部,分析數(shù)據(jù)羽利,畫圖宫患,

先利用pandas將數(shù)據(jù)從csv中讀出,一步步畫圖

 def read_csv(self):
    frame_dt = pd.read_csv("frident.csv")
    print(frame_dt.head())
    return frame_dt

讀入數(shù)據(jù)这弧,并返回datefream的格式返回娃闲,方便之后的數(shù)據(jù)處理

第一幅圖:性別占比圖,從接口獲取的數(shù)據(jù)中性別男匾浪,Sex為1皇帮,女為2,未設置則為0蛋辈,計算出男女人數(shù)属拾,并畫圖

def plt_sex_plant(self,frame):
    sex = frame['Sex']#獲取到所有性別信息
    male = famale = other = 0
    for i in range(len(sex)):#計算男女人數(shù)
        if sex[i] == 1:
            male += 1
        elif sex[i] == 2:
            famale += 1
        else:
            other += 1
    label = ['male','famale','other']
    #畫餅狀圖,傳入包含人數(shù)的列表冷溶,標簽渐白,和顯示形式
    plt.pie([male,famale,other],labels=label,autopct='%1.1f%%',)
    plt.axis('equal')#二位形式顯示
    plt.legend(loc='upper left', bbox_to_anchor=(-0.1, 1))#設置標簽顯示位置和格式
    plt.show()顯示圖片

下圖為圖片顯示,哈哈哈逞频,第一幅圖出來了纯衍。


image.png

第二幅圖,畫兩幅柱狀圖苗胀,顯示好友省市分部襟诸,

def plt_province_plant(self,frame):
    Province = frame['Province']#獲取省所有分布信息
    name_list = set(Province)#獲取涉及的省
    x_list = list(name_list)
    vals = {}
    #獲取每一個省的好友個數(shù)
    for i in x_list:
        pro_name = frame[frame['Province'] == i]#
        vals[i] = len(pro_name)
    #定義x,y的數(shù)據(jù)列表
    x_vals = []
    y_vals = []
    vals_k = sorted(vals.items(), key=lambda vals: vals[1], reverse=True)#將獲取到的分部信息排序瓦堵,以從小到大的順序排序的

    for vals_i in vals_k[:10]:#獲取前10位信息,顯示就好
        x_vals.append(vals_i[0])
        y_vals.append(vals_i[1])
    #打開一個畫布
    plt.figure()
    plt.bar(x_vals, y_vals, width=0.8)#畫一個柱狀圖
    plt.xticks(rotation=60)#x軸的信息旋轉60度顯示
    plt.title("Province")#設置圖片的標題
    plt.show()#顯示圖片

上圖:


image.png

省市分布套路一樣励堡,不在重復谷丸,文章已經(jīng)很長了。应结。刨疼。。鹅龄。直接上圖吧揩慕!

image.png

接下來,就是最后一個了扮休,作圖云迎卤,這個最神奇了。用好友的個性簽名玷坠,做一個圖片

def plt_Signature_plant(self,frame):
    context_list = list(set(frame['Signature']))#獲取所有個性簽名信息
    wordcloud = WordCloud(
        width=600,
        height=300,
        font_path=r'D:\word\simhei.ttf',  # 設置字體模式
        max_words=400,  # 設置最大字數(shù)
    ).generate(str(context_list))

    plt.figure()
    plt.imshow(wordcloud, interpolation='bilinear')
    plt.axis("off")
    plt.show()
    # 保存圖片
    wordcloud.to_file('wordcloud_Signature.png')

好友名稱和個性簽名蜗搔,作圖云是一個的套路啊,不重復了八堡,哈哈哈哈樟凄,上圖上圖。


image.png

是不是很神奇呢兄渺?

哈哈缝龄,作者代碼技拙,大家多多指教挂谍。[抱拳]叔壤,多多點贊哦!

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末口叙,一起剝皮案震驚了整個濱河市炼绘,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌妄田,老刑警劉巖饭望,帶你破解...
    沈念sama閱讀 222,865評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異形庭,居然都是意外死亡铅辞,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評論 3 399
  • 文/潘曉璐 我一進店門萨醒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來斟珊,“玉大人,你說我怎么就攤上這事富纸《诓龋” “怎么了旨椒?”我有些...
    開封第一講書人閱讀 169,631評論 0 364
  • 文/不壞的土叔 我叫張陵,是天一觀的道長堵漱。 經(jīng)常有香客問我综慎,道長,這世上最難降的妖魔是什么勤庐? 我笑而不...
    開封第一講書人閱讀 60,199評論 1 300
  • 正文 為了忘掉前任示惊,我火速辦了婚禮,結果婚禮上愉镰,老公的妹妹穿的比我還像新娘米罚。我一直安慰自己,他們只是感情好丈探,可當我...
    茶點故事閱讀 69,196評論 6 398
  • 文/花漫 我一把揭開白布录择。 她就那樣靜靜地躺著,像睡著了一般碗降。 火紅的嫁衣襯著肌膚如雪隘竭。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,793評論 1 314
  • 那天讼渊,我揣著相機與錄音货裹,去河邊找鬼。 笑死精偿,一個胖子當著我的面吹牛,可吹牛的內容都是我干的赋兵。 我是一名探鬼主播笔咽,決...
    沈念sama閱讀 41,221評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼霹期!你這毒婦竟也來了叶组?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 40,174評論 0 277
  • 序言:老撾萬榮一對情侶失蹤历造,失蹤者是張志新(化名)和其女友劉穎甩十,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吭产,經(jīng)...
    沈念sama閱讀 46,699評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡侣监,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,770評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了臣淤。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片橄霉。...
    茶點故事閱讀 40,918評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖邑蒋,靈堂內的尸體忽然破棺而出姓蜂,到底是詐尸還是另有隱情按厘,我是刑警寧澤,帶...
    沈念sama閱讀 36,573評論 5 351
  • 正文 年R本政府宣布钱慢,位于F島的核電站逮京,受9級特大地震影響,放射性物質發(fā)生泄漏束莫。R本人自食惡果不足惜懒棉,卻給世界環(huán)境...
    茶點故事閱讀 42,255評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望麦箍。 院中可真熱鬧漓藕,春花似錦、人聲如沸挟裂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,749評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽诀蓉。三九已至栗竖,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間渠啤,已是汗流浹背狐肢。 一陣腳步聲響...
    開封第一講書人閱讀 33,862評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留沥曹,地道東北人份名。 一個月前我還...
    沈念sama閱讀 49,364評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像妓美,于是被迫代替她去往敵國和親僵腺。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,926評論 2 361

推薦閱讀更多精彩內容