前段時間不知道從哪里弄來的一份知乎數(shù)據(jù)垮庐,數(shù)據(jù)量不多燃异,只有二十萬的樣子攒砖,今天就以這二十萬數(shù)據(jù)來進(jìn)行一次簡單地數(shù)據(jù)可視化,主要的工具就是兩個:pandas和matplotlib鳖眼。
以下相關(guān)的代碼和示例數(shù)據(jù)在文末有相應(yīng)的下載鏈接黑毅,你可以下載數(shù)據(jù)自己嘗試。
實際上钦讳,你也可以使用BI軟件進(jìn)行分析,速度和可視化效果很好枕面,最主要的是操作相對容易愿卒,但是我們拿到的這份示例數(shù)據(jù)并不規(guī)整,也就是有部分內(nèi)容是亂的潮秘,爬蟲爬下來的數(shù)據(jù)有錯位的情況琼开,因此對于數(shù)據(jù)的清洗需要一定的時間,為了方便枕荞,我們就直接編程實現(xiàn)柜候。
導(dǎo)入數(shù)據(jù)
我們使用jupyter notebook作為我們的ide工具
首先來看一下我們的原始數(shù)據(jù)的樣子。
我們習(xí)慣于使用英文作為我們的列索引躏精,因此我們在導(dǎo)入數(shù)據(jù)的時候指定索引的名稱渣刷,如下所示。
其中矗烛,%matplotlib inline指定我們的plt做的圖嵌入在ide之中辅柴,而不是彈窗顯示。
其結(jié)果如下所示,后面還有數(shù)據(jù)列碌嘀,只是截圖容不下了涣旨。
知乎用戶高校分布情況
我們首先來看一下哪些高校的知乎用戶數(shù)量最多,核心思路就是我們對高校進(jìn)行計數(shù)股冗,然后按照數(shù)量進(jìn)行降序排序霹陡,選擇選取前十位進(jìn)行繪圖表示。在實際操作的過程總止状,我發(fā)現(xiàn)了一個問題穆律,計數(shù)結(jié)果排名比較靠前的數(shù)據(jù)中有一些是諸如”大學(xué)“, ’大學(xué)本科‘這樣的數(shù)據(jù)导俘,顯然我們需要先將其去掉峦耘。
我們自定義一個函數(shù),如果其學(xué)校填寫的是某一些特定的數(shù)據(jù)旅薄,我們就將其置為空辅髓。
因為我們只需要排名靠前的大學(xué),那些名字更加奇葩的我們就不管了少梁,畢竟我們用不到洛口。
下面就直接開始繪圖了。
其結(jié)果如下
一眼望過去凯沪,你會發(fā)現(xiàn)全是985高校第焰,真是著實讓人悲傷。
既然那么多的985妨马,那么我們下一步的思路就是挺举,看一下985的人數(shù)在總?cè)藬?shù)中所占的比例。
985高校用戶占比
思路就是我們定義一個函數(shù)烘跺,如果這所學(xué)校是985的話湘纵,我們就給他一個記號為1,如果不是就為0滤淳,為什么是1/0而不是其他的呢梧喷,待會我們作圖的時候你就知道了。
看一下效果
檢查一下是不是已經(jīng)完全的實現(xiàn)了標(biāo)記情況脖咐。
直接開始繪圖吧
簡單地解釋一下clean_name.name = ''
在繪制餅圖的時候铺敌,Series的name會默認(rèn)以標(biāo)簽的形式出現(xiàn)在餅圖的左邊,好好的一個餅圖屁擅,左邊多了一個label顯然是不美觀的偿凭,因此我們直接將Series的name去掉,你可以嘗試注釋掉這一行煤蹭,來看一下會是什么樣子笔喉。
從上面的餅圖可以看到取视,雖然985高校只有34所,但是其占比達(dá)到了1/4常挚,真是讓人懷疑這些高校的學(xué)生是不是人手一個知乎App作谭。
回答數(shù)Top10
這個地方就出現(xiàn)了數(shù)據(jù)混亂的情況,按理說奄毡,回答都是整數(shù)折欠,但是這里面的部分?jǐn)?shù)據(jù)出現(xiàn)了值為漢字的情況,因此吼过,要想進(jìn)行下一步的分析锐秦,只能先對這些數(shù)據(jù)進(jìn)行處理。
使用正則表達(dá)式盗忱,將非數(shù)字全部替換為0酱床,最后把這一列的數(shù)據(jù)類型轉(zhuǎn)換成整型。
我們這里將用戶名作為我們的索引趟佃,方便下一步的繪圖扇谣。
知乎性別比例
詞云展示
最后,我們將以上數(shù)據(jù)中所呈現(xiàn)的專業(yè)進(jìn)行一下詞頻統(tǒng)計闲昭,并制作出詞云罐寨。
計算機(jī),金融完勝序矩。
既然做到這了鸯绿,順便在看一下這些大V的就職公司。
做的非常的粗糙簸淀,看到的同學(xué)請見諒瓶蝴。
你可以去github下載以上的代碼和相應(yīng)的數(shù)據(jù)。