溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

pandas新版本如何實(shí)現(xiàn)數(shù)據(jù)表多列頻率統(tǒng)計(jì)

發(fā)布時(shí)間:2021-11-30 10:36:43 來源:億速云 閱讀:470 作者:小新 欄目:大數(shù)據(jù)

小編給大家分享一下pandas新版本如何實(shí)現(xiàn)數(shù)據(jù)表多列頻率統(tǒng)計(jì),希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!



列頻率統(tǒng)計(jì)

pandas 以前的版本(1.1以前)中,就已經(jīng)存在單列的頻率統(tǒng)計(jì)。

我們以泰坦尼克號罹難乘客數(shù)據(jù)為例子:

pandas新版本如何實(shí)現(xiàn)數(shù)據(jù)表多列頻率統(tǒng)計(jì)  
image-20200806092628285

希望快速查看各個(gè)性別的記錄數(shù):

pandas新版本如何實(shí)現(xiàn)數(shù)據(jù)表多列頻率統(tǒng)計(jì)  
image-20200806092732878

上面顯示的是絕對數(shù)值,可以顯示占比嗎?

pandas新版本如何實(shí)現(xiàn)數(shù)據(jù)表多列頻率統(tǒng)計(jì)  
image-20200806092901143
  • 通過參數(shù) normalize 可以轉(zhuǎn)換成占比

但是,以上都是針對單列的統(tǒng)計(jì),很多時(shí)候我們希望對多列組合的頻率統(tǒng)計(jì)。


 

數(shù)據(jù)表的多列頻率統(tǒng)計(jì)

現(xiàn)在,pandas 1.1 版本中已為 DataFrame 追加了同名方法 value_counts,下面來看看怎么使用。

查看性別與是否生還的統(tǒng)計(jì)數(shù):

pandas新版本如何實(shí)現(xiàn)數(shù)據(jù)表多列頻率統(tǒng)計(jì)  
image-20200806093401214
  • 第一參數(shù)為 subset ,傳入需要統(tǒng)計(jì)的列名的 list 即可

同樣地,通過參數(shù)可以微調(diào)輸出結(jié)果:

pandas新版本如何實(shí)現(xiàn)數(shù)據(jù)表多列頻率統(tǒng)計(jì)  
image-20200806093527710
  • 可以看出來男性生還率非常低

可能對于一些初學(xué)者來說會(huì)疑惑,難道舊版本得到這個(gè)結(jié)果很麻煩嗎?

其實(shí)以前的版本做到一樣的效果也是非常容易:

pandas新版本如何實(shí)現(xiàn)數(shù)據(jù)表多列頻率統(tǒng)計(jì)  
image-20200806094104421

沒有按頻率倒序輸出?

簡單在后面"接上"排序操作,結(jié)果就一樣了:

pandas新版本如何實(shí)現(xiàn)數(shù)據(jù)表多列頻率統(tǒng)計(jì)  
image-20200806094230946

其實(shí)還有另一種解決思路,有興趣看源碼吧

統(tǒng)計(jì)比例也沒有多大的事情:

pandas新版本如何實(shí)現(xiàn)數(shù)據(jù)表多列頻率統(tǒng)計(jì)  
image-20200806094306039

那肯定用新版本的方法呀,新方法一句就做了你這么多句的事情!

但是?。?!

下面,我們就來看看"自己做主"的優(yōu)勢


 

分段統(tǒng)計(jì)

之前在講解單列的頻率統(tǒng)計(jì)(Series.value_counts)時(shí),其實(shí)遺漏了一個(gè)挺有用的參數(shù),對于數(shù)值型的列才能使用。

希望查看年齡段的頻率(分3段吧):

pandas新版本如何實(shí)現(xiàn)數(shù)據(jù)表多列頻率統(tǒng)計(jì)  
image-20200806095018867
  • bins 參數(shù)指定分3段

通常我們希望按分段排序:

pandas新版本如何實(shí)現(xiàn)數(shù)據(jù)表多列頻率統(tǒng)計(jì)  
image-20200806095136997
  • 參數(shù) sort 控制是否按頻率倒序,設(shè)置為 False,則按索引排序

你是不是覺得新版本的 DataFrame.value_counts  也有這個(gè)參數(shù)呢?

很遺憾,并沒有這個(gè)參數(shù),應(yīng)該考慮到組合列的值是不能分段的。

不過對于自定義函數(shù),當(dāng)然想干啥就干啥:

pandas新版本如何實(shí)現(xiàn)數(shù)據(jù)表多列頻率統(tǒng)計(jì)  
image-20200806100144613
  • 由于本身 DataFrame.groupby 就可以支持混合類型的 key。因此在 key 設(shè)置時(shí),可以是列名(一個(gè)字符串),也可以是列值,也可以是他們的混合


看完了這篇文章,相信你對“pandas新版本如何實(shí)現(xiàn)數(shù)據(jù)表多列頻率統(tǒng)計(jì)”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI