我已经查看了各种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
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
答案 0 :(得分:3)
我认为如果transform
不需要计算size
,我需要count
或NaN
:
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