使用转换在特定列上添加重复行的计数 - Pandas

问题描述:

我已经查看了各种SO问题,解决了在特定列上计数重复行的问题,最相关的是this之一。使用转换在特定列上添加重复行的计数 - Pandas

问题是,这个解决方案是非常具体的,我不知道如何推广到数据框与更多的数据。 我有一个数据帧有很多列,我想添加一个名为'A_D_E_count'的新列,它将指示整个数据帧中有多少行具有相同的每行A,D和E列的值。

优选地,这应该工作使用.transform功能

实施例:

Out[6]: 
     A  B  C  D  E 
0 294 41981 37597 39875 33364 
1 294 39776 37597 37572 39171 
2 294 44658 49408 43713 49408 
3 294 58615 52065 43713 49408 
4 294 44811 51238 42926 49408 

在此数据帧,我想增加一列,将计含有相同ADE值,所以行数结果将是

Out[6]: 
     A  B  C  D  E A_D_E_count 
0 294 41981 37597 39875 33364   1 
1 294 39776 37597 37572 39171   1 
2 294 44658 49408 43713 49408   2 
3 294 58615 52065 43713 49408   2 
4 294 44811 51238 42926 49408   1 

我认为你需要size or count if not need count NaN s with transform

cols = ['A','D','E'] 

df['A_D_E_count'] = df.groupby(cols)['A'].transform('size') 
print (df) 
    A  B  C  D  E A_D_E_count 
0 294 41981 37597 39875 33364   1 
1 294 39776 37597 37572 39171   1 
2 294 44658 49408 43713 49408   2 
3 294 58615 52065 43713 49408   2 
4 294 44811 51238 42926 49408   1