pandas 数据帧的唯一元素的累计数量
问题描述
我有一个 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
排序时有效。那是故意的吗?你总是可以提前分拣。
相关文章