使用 python 数据框,将满足条件的行数列添加到满足条件的每一行

With python dataframes add column of counts of rows that meet condition to each row that meets it

假设我有一个具有以下结构的 python DataFrame:

pd.DataFrame([[1,2,3,4],[1,2,3,4],[1,3,5,6],[1,4,6,7],[1,4,6,7],[1,4,6,7]])
Out[262]: 
   0  1  2  3
0  1  2  3  4
1  1  2  3  4
2  1  3  5  6
3  1  4  6  7
4  1  4  6  7
5  1  4  6  7

我如何添加一个名为 'ct' 的列来计算 DataFrame 的实例,其中第 1-3 列与 匹配的每一行匹配 ... 所以全部完成后,DataFrame 看起来像这样。

   0  1  2  3  ct
0  1  2  3  4  2
1  1  2  3  4  2
2  1  3  5  6  1
3  1  4  6  7  3
4  1  4  6  7  3
5  1  4  6  7  3

您可以使用 groupby + transform + size:

df['ct'] = df.groupby([1,2,3])[1].transform('size')
#alternatively
#df['ct'] = df.groupby([1,2,3])[1].transform(len)
print (df)
   0  1  2  3  ct
0  1  2  3  4   2
1  1  2  3  4   2
2  1  3  5  6   1
3  1  4  6  7   3
4  1  4  6  7   3
5  1  4  6  7   3