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

blu*_*ers 5 python pandas

我查看了各种解决在特定列上计算重复行的问题的 SO 问题,最相关的是这个问题。

问题是,这个解决方案非常具体,我无法弄清楚如何将它推广到具有更多数据的数据帧。我有一个包含多列的数据框,我想添加一个名为“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
Run Code Online (Sandbox Code Playgroud)

在这个数据框上,我想添加一个列来计算包含相同A DE值的行数,因此结果将是

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
Run Code Online (Sandbox Code Playgroud)

jez*_*ael 7

我认为您需要sizecount不需要 count NaNs 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
Run Code Online (Sandbox Code Playgroud)