可以分组'col2'并使用它'/'.join(sorted(x))来获取可能的颜色组合。在'/'.join(sorted(x))将一个组中的所有值,并且将它们连接在一起成一个字符串。因此,如果'black'并且'white'在一个组中,它将它们一起加入到字符串中'black/white'。此外,我对值进行排序,因此无法进入'black/white'一个组,而'white/black'在另一个组中。此lambda函数适用于每个组。然后用于Counter在字典中存储计数。
from collections import Counter
Counter(dftest.groupby('col2')['col1'].apply(lambda x: '/'.join(sorted(x))))
输出:
{'black/black': 2, 'black/brown': 1, 'green/red': 1}
或者,可以使用value_counts而不是使用Counter。它将输出一系列:
dftest.groupby('col2')['col1'].apply(lambda x: '/'.join(sorted(x))).value_counts()
输出:
black/black 2
green/red 1
black/brown 1