繁体   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