Pandas 實現分組計數且不計重復

在對dataframe進行分析的時候會遇到需要分組計數,計數的column中屬性有重復,但又需要僅對不重復的項計數(即重復N次出現的項隻計1次)。

函數如下:

dataframe.groupby([‘分組的列名’]).需要計數的列名.nunique()

舉例:

數組“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來統計每一傢店的營業日期數(可以通過不計重復的count “SalesDate”來完成)

代碼如下:

data.groupby(['StoreID']).SalesDate.nunique()

補充:pandas 統計分組內不重復計數

在數據分析中的數據處理過程中,經常需要對數據進行分組計數,看下下面這組數據

數據中name 為C 的有三行,其中有2個code是重復的

目標:

按name 分組,統計每組中code的不重復數量

df.groupby('name')['code'].nunique()
# 以name 分組後,統計code的不重復數目

結果如下:

排序

df.groupby('name')['code'].nunique().sort_values(ascending=False)
# 以name 分組後,統計code的不重復數目

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。