pandas 数据帧的唯一元素的累计数量

2022-03-24 00:00:00 python pandas unique

问题描述

我有一个 pandas 数据框

id tag
1  A
1  A
1  B
1  C
1  A
2  B
2  C  
2  B 

我想添加一个列,该列在id级别上计算唯一标记的累计数量。更具体地说,我希望

id tag count
1  A   1
1  A   1
1  B   2
1  C   3
1  A   3
2  B   1
2  C   2
2  B   2

对于给定的id,计数将不会减少。谢谢您的帮助!


解决方案

我认为这可以满足您的要求:

unique_count = df.drop_duplicates().groupby('id').cumcount() + 1
unique_count.reindex(df.index).ffill()
+1是因为计数从零开始。这仅在数据帧按id排序时有效。那是故意的吗?你总是可以提前分拣。

相关文章