[英]count the number of unique combinations in pandas data frame
我在為數據生成一些簡單的匯總統計信息時遇到麻煩(腦筋急轉彎)。
我想做的是計算所有“ id”中同時出現的“ code”值的數量。 數據如下:
id code
1 A
2 A
2 B
3 A
3 B
4 A
5 A
5 C
6 A
6 B
6 C
因此輸出看起來像這張表。 或者,可能通過在原始數據“ combo-id”上為每個唯一組合添加一個分解列。
Combo Count combo-id
(A) 2 1
(A,B) 2 2
(A,C) 1 3
(A,B,C) 1 4
首先為每個組創建tuple
組,然后按GroupBy.size
獲取計數:
s = df.groupby('id')['code'].apply(tuple).rename('Combo')
#if duplicates don't matter, thank you @cripcate
#s = df.groupby('id')['code'].apply(set).rename('Combo')
df1 = s.groupby(s).size().reset_index(name='Count')
print (df1)
Combo Count
0 (A,) 2
1 (A, B) 2
2 (A, B, C) 1
3 (A, C) 1
嘗試添加.unique()
Series.unique()[源代碼]
Return unique values of Series object. Uniques are returned in order of appearance. Hash table-based unique, therefore does NOT sort.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.