IIUC,
groupby
ID,聚合到
frozenset
并使用
value_counts
:
df.groupby('ID')['Product'].agg(frozenset).value_counts()
输出:
(B, A) 2
(D, C, A) 2
(A) 1
Name: Product, dtype: int64
使用排序元组的替代方法:
df.groupby('ID')['Product'].agg(lambda x: tuple(sorted(x))).value_counts()
输出:
(A, B) 2
(A, C, D) 2
(A,) 1
Name: Product, dtype: int64
或字符串:
df.groupby('ID')['Product'].agg(lambda x: ','.join(sorted(x))).value_counts()
输出:
A,B 2
A,C,D 2
A 1
Name: Product, dtype: int64