在對(duì)dataframe進(jìn)行分析的時(shí)候會(huì)遇到需要分組計(jì)數(shù),計(jì)數(shù)的column中屬性有重復(fù),但又需要僅對(duì)不重復(fù)的項(xiàng)計(jì)數(shù)(即重復(fù)N次出現(xiàn)的項(xiàng)只計(jì)1次)。
函數(shù)如下:
dataframe.groupby([‘分組的列名']).需要計(jì)數(shù)的列名.nunique()
數(shù)組“data”如下:
StoreID | Sales | SalesDate | Channel |
---|---|---|---|
A | 100 | 2018/1/1 | 01 |
A | 90 | 2018/1/1 | 02 |
A | 110 | 2018/1/2 | 01 |
B | 82.2 | 2018/1/1 | 01 |
B | 90 | 2018/1/2 | 02 |
如果要按StoreID來(lái)統(tǒng)計(jì)每一家店的營(yíng)業(yè)日期數(shù)(可以通過(guò)不計(jì)重復(fù)的count “SalesDate”來(lái)完成)
代碼如下:
data.groupby(['StoreID']).SalesDate.nunique()
補(bǔ)充:pandas 統(tǒng)計(jì)分組內(nèi)不重復(fù)計(jì)數(shù)
在數(shù)據(jù)分析中的數(shù)據(jù)處理過(guò)程中,經(jīng)常需要對(duì)數(shù)據(jù)進(jìn)行分組計(jì)數(shù),看下下面這組數(shù)據(jù)
數(shù)據(jù)中name 為C 的有三行,其中有2個(gè)code是重復(fù)的
按name 分組,統(tǒng)計(jì)每組中code的不重復(fù)數(shù)量
df.groupby('name')['code'].nunique() # 以name 分組后,統(tǒng)計(jì)code的不重復(fù)數(shù)目
結(jié)果如下:
df.groupby('name')['code'].nunique().sort_values(ascending=False) # 以name 分組后,統(tǒng)計(jì)code的不重復(fù)數(shù)目
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
標(biāo)簽:日照 天水 白城 西安 錦州 隨州 股票 安慶
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Pandas 實(shí)現(xiàn)分組計(jì)數(shù)且不計(jì)重復(fù)》,本文關(guān)鍵詞 Pandas,實(shí)現(xiàn),分組,計(jì)數(shù),且,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。