您好,登錄后才能下訂單哦!
這篇文章主要介紹了如何使用pandas進(jìn)行數(shù)據(jù)分析,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
為了獲取微信好友的數(shù)據(jù),需要使用一個(gè)工具,叫itchat。
itchat是網(wǎng)頁(yè)微信的接口的封裝。
在很久之前,小程介紹過(guò)如何給微信群自動(dòng)地發(fā)送(批量)消息,用的就是itchat。
對(duì)于itchat的安裝與使用,讀者可以關(guān)注“廣州小程”微信公眾號(hào),并在“軟件基礎(chǔ)”的菜單項(xiàng)中找到相應(yīng)的文章進(jìn)行查閱。
這里直接介紹使用itchat獲取微信好友的信息。
試驗(yàn)一下,先算一下小程有多少異性朋友吧,可以這樣寫代碼:
執(zhí)行這段代碼,可以看到這樣的輸出:
為了后續(xù)的數(shù)據(jù)分析,接下來(lái),小程提取更具體的好友數(shù)據(jù),并保存到文件,這里面用到了pandas。
讀者如果沒有安裝pandas,那可以這樣安裝:
pip install pandas
以下是獲取好友數(shù)據(jù)的代碼:
執(zhí)行這段代碼,在本地生成了一個(gè)文件:friends_info.csv,csv文件一般是純文本,用來(lái)保存記錄的文件(一般所有記錄都有相同的字段)。
用excel打開這個(gè)csv文件,可以看到這樣的信息(如果讀者發(fā)現(xiàn)excel打開會(huì)亂碼,那可以先用word并選擇用utf8來(lái)打開,然后再保存,之后再用excel打開):
這個(gè)csv文件的內(nèi)容,就是后續(xù)數(shù)據(jù)分析的基礎(chǔ)。
有了基礎(chǔ)數(shù)據(jù)之后,就可以使用pandas進(jìn)行分析,并用matplotlib進(jìn)行繪圖。
matplotlib是繪圖的實(shí)用工具,小程另找機(jī)會(huì)詳細(xì)介紹,讀者可以先不管這部分內(nèi)容,或者先簡(jiǎn)單了解,因?yàn)榇a截圖中有相應(yīng)的解釋。
這里演示對(duì)微信好友的性別與地區(qū)進(jìn)行數(shù)據(jù)分析。
引入pandas與matplotlib的代碼,以及代碼的執(zhí)行效果是這樣的:
這里根據(jù)性別種類的個(gè)數(shù),繪制條形圖。
先來(lái)看分析性別與繪制的代碼,截圖中的解釋是重點(diǎn)內(nèi)容:
執(zhí)行這段代碼,可以看到這樣的輸出與顯示:
由展示圖可見,小程的朋友以男性居多。
實(shí)現(xiàn)的思路跟性別分析類似,代碼如下:
執(zhí)行的效果如下:
由展示圖可見,小程的朋友以廣州跟深圳為主,小程的朋友圈很窄。
以上介紹了怎么分析性別與地區(qū)的分布數(shù)據(jù),其中pandas的使用是本文的重點(diǎn)。
以上的代碼中,用到了pandas的DataFrame跟Series類型,也用到了Series的統(tǒng)計(jì)函數(shù)max。
接下來(lái),對(duì)pandas的知識(shí)再做一個(gè)簡(jiǎn)單的介紹。
pandas的數(shù)據(jù),有兩個(gè)類型。一個(gè)是DataFrame,一個(gè)是Series。
DataFrame就是一個(gè)數(shù)據(jù)表(由若干列組成),而Series就是其中的一列(一個(gè)字段的所有內(nèi)容)。
對(duì)于數(shù)據(jù)分析的內(nèi)容,讀者可以查閱“廣州小程”的“數(shù)據(jù)分析”專題的文章。
對(duì)于DataFrame或Series變量,有各種函數(shù),可以完成數(shù)據(jù)分析,包括:個(gè)數(shù)、最大值、最小值、平均值、中位數(shù)、眾數(shù)、方差、峰值,等等。
對(duì)于pandas的詳細(xì)理解,可以參考這個(gè)文檔:http://pandas.pydata.org/pandas-docs/stable/index.html
讀者也可以邊用邊學(xué)。
至此,主要內(nèi)容已經(jīng)介紹完畢,以下為附帶內(nèi)容。
小程拿到的好友信息中,包括了“簽名”這項(xiàng)內(nèi)容,一般來(lái)說(shuō),可以弄個(gè)詞云圖來(lái)看看簽名的重點(diǎn)信息。
以下是小程順帶介紹的內(nèi)容。
安裝模塊jieba,這是一個(gè)支持中文的分詞器:
pip install jieba
安裝模塊PIL,這是一個(gè)圖像處理庫(kù):
pip install Pillow
安裝wordcloud,這是一個(gè)詞云圖庫(kù):
pip install wordcloud
實(shí)現(xiàn)微信好友的簽名的詞云圖,大概的思路是這樣的:使用pandas從基礎(chǔ)數(shù)據(jù)中讀取到一個(gè)數(shù)據(jù)表,從數(shù)據(jù)表中拿到簽名的列并把這一列的內(nèi)容轉(zhuǎn)換成list,對(duì)簽名list的每個(gè)簽名逐一處理,過(guò)濾掉一些關(guān)鍵詞,再使用正則表達(dá)式把一些特殊字符去除掉,最后把處理后的簽名用空格拼接在一起,并調(diào)用分詞器進(jìn)行分詞處理,得到一個(gè)分詞list。創(chuàng)建詞云圖對(duì)象,設(shè)置背景顏色、字體等,并傳遞分詞list,最終顯示并保存詞云圖對(duì)象生成的圖像。
實(shí)現(xiàn)的代碼,請(qǐng)參考下圖:
執(zhí)行這段代碼,可以看到這樣的效果:
由圖可見,小程的好友很有個(gè)性(喜歡說(shuō)“自己”),小程的好友跟“程序”分不開,小程的好友已經(jīng)開始聊人生與合作了(估計(jì)年紀(jì)比較大了)。
在生成詞云圖時(shí),設(shè)置了背景圖(back.jpg),小程這里使用的是這張圖:
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“如何使用pandas進(jìn)行數(shù)據(jù)分析”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。