计算 Pandas 中的相似行

count similar rows in Pandas

我想计算 Pandas 数据框中相似行的数量,并将其添加为 'count' 的新列。

例如:

   A  B  C  D
0  1  1  1  1
1  1  1  0  1
2  1  1  1  0
3  1  1  1  0

应该导致:

   A  B  C  D  count
0  1  1  1  1  1
1  1  1  0  1  1
2  1  1  1  0  2
3  1  1  1  0  2

一个简单的解决方案是 groupby 所有列并获取组大小:

df['count'] = df.groupby(list(df.columns))['A'].transform('size')

输出:

   A  B  C  D  count
0  1  1  1  1      1
1  1  1  0  1      1
2  1  1  1  0      2
3  1  1  1  0      2

输入:

df = pd.DataFrame({'A': [1, 1, 1, 1],
                   'B': [1, 1, 1, 1],
                   'C': [1, 0, 1, 1],
                   'D': [1, 1, 0, 0]})