【问题标题】:Using transform to add a count of duplicate rows on certain columns - Pandas使用转换在某些列上添加重复行数 - Pandas
【发布时间】:2017-10-16 10:55:21
【问题描述】:

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

问题是,这个解决方案非常具体,我不知道如何将它推广到具有更多数据的数据帧。 我有一个包含许多列的数据框,我想添加一个名为“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

在这个数据框上,我想添加一个列来计算包含相同 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

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    如果不需要 NaNs 和 transform,我认为你需要 sizecount

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-19
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多