新聞中心
小編給大家分享一下pandas新版本如何實(shí)現(xiàn)數(shù)據(jù)表多列頻率統(tǒng)計(jì),希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
公司主營(yíng)業(yè)務(wù):成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。成都創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。成都創(chuàng)新互聯(lián)推出承留免費(fèi)做網(wǎng)站回饋大家。
列頻率統(tǒng)計(jì)
pandas 以前的版本(1.1以前)中,就已經(jīng)存在單列的頻率統(tǒng)計(jì)。
我們以泰坦尼克號(hào)罹難乘客數(shù)據(jù)為例子:

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

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

通過(guò)參數(shù) normalize 可以轉(zhuǎn)換成占比
但是,以上都是針對(duì)單列的統(tǒng)計(jì),很多時(shí)候我們希望對(duì)多列組合的頻率統(tǒng)計(jì)。
數(shù)據(jù)表的多列頻率統(tǒng)計(jì)
現(xiàn)在,pandas 1.1 版本中已為 DataFrame 追加了同名方法 value_counts,下面來(lái)看看怎么使用。
查看性別與是否生還的統(tǒng)計(jì)數(shù):

第一參數(shù)為 subset ,傳入需要統(tǒng)計(jì)的列名的 list 即可
同樣地,通過(guò)參數(shù)可以微調(diào)輸出結(jié)果:

可以看出來(lái)男性生還率非常低
可能對(duì)于一些初學(xué)者來(lái)說(shuō)會(huì)疑惑,難道舊版本得到這個(gè)結(jié)果很麻煩嗎?
其實(shí)以前的版本做到一樣的效果也是非常容易:

沒(méi)有按頻率倒序輸出?
簡(jiǎn)單在后面"接上"排序操作,結(jié)果就一樣了:

其實(shí)還有另一種解決思路,有興趣看源碼吧
統(tǒng)計(jì)比例也沒(méi)有多大的事情:

那肯定用新版本的方法呀,新方法一句就做了你這么多句的事情!
但是?。?!
下面,我們就來(lái)看看"自己做主"的優(yōu)勢(shì)
分段統(tǒng)計(jì)
之前在講解單列的頻率統(tǒng)計(jì)(Series.value_counts)時(shí),其實(shí)遺漏了一個(gè)挺有用的參數(shù),對(duì)于數(shù)值型的列才能使用。
希望查看年齡段的頻率(分3段吧):

bins 參數(shù)指定分3段
通常我們希望按分段排序:

參數(shù) sort 控制是否按頻率倒序,設(shè)置為 False,則按索引排序
你是不是覺(jué)得新版本的 DataFrame.value_counts 也有這個(gè)參數(shù)呢?
很遺憾,并沒(méi)有這個(gè)參數(shù),應(yīng)該考慮到組合列的值是不能分段的。
不過(guò)對(duì)于自定義函數(shù),當(dāng)然想干啥就干啥:

由于本身 DataFrame.groupby 就可以支持混合類型的 key。因此在 key 設(shè)置時(shí),可以是列名(一個(gè)字符串),也可以是列值,也可以是他們的混合
看完了這篇文章,相信你對(duì)“pandas新版本如何實(shí)現(xiàn)數(shù)據(jù)表多列頻率統(tǒng)計(jì)”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
文章題目:pandas新版本如何實(shí)現(xiàn)數(shù)據(jù)表多列頻率統(tǒng)計(jì)
鏈接URL:http://fisionsoft.com.cn/article/jdihcs.html