簡體   English   中英

計算熊貓數據框中唯一組合的數量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM