从一个开始枚举每组中的行
Posted
技术标签:
【中文标题】从一个开始枚举每组中的行【英文标题】:Enumerate rows in each group starting from one 【发布时间】:2021-05-03 15:34:18 【问题描述】:我有一个数据框(按日期排序,为简单起见,示例中不包含日期列),如下所示:
df = pd.DataFrame(['A', 'B' , 'B', 'A', 'C', 'B'], columns=['letters'])
letters
0 A
1 B
2 B
3 A
4 C
5 B
我想创建一个新列来计算letters
列中每个值的出现次数,并随着letters
列中出现的值增加1。我想要到达的数据框是这样的:
letters occurance_counter
0 A 1
1 B 1
2 B 2
3 A 2
4 C 1
5 B 3
任何帮助都会很棒,在此先感谢!
【问题讨论】:
【参考方案1】:您可以groupby
并使用方法cumcount
:
df['occurance_counter'] = df.groupby('letters')['letters'].cumcount().add(1)
结果:
letters occurance_counter
0 A 1
1 B 1
2 B 2
3 A 2
4 C 1
5 B 3
【讨论】:
这可以简化为df['occurance_counter'] = df.groupby('letters').cumcount().add(1)
。以上是关于从一个开始枚举每组中的行的主要内容,如果未能解决你的问题,请参考以下文章