使用转换在特定列上添加重复行的计数 - 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
在此数据帧,我想增加一列,将计含有相同A
D
和E
值,所以行数结果将是
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