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