嗨我有一个带有列的数据帧" id"如下所示
id
abc
def
ghi
abc
abc
xyz
def
我需要一个新专栏" id1"附加一个数字1,每个副本的数字应递增。输出应如下所示。
id id1
abc abc1
def def1
ghi ghi1
abc abc2
abc abc3
xyz xyz1
def def2
有人能建议我解决这个问题吗?
答案 0 :(得分:1)
将groupby.cumcount
用于计数id
,添加1
并转换为string
s:
df['id1'] = df['id'] + df.groupby('id').cumcount().add(1).astype(str)
print (df)
id id1
0 abc abc1
1 def def1
2 ghi ghi1
3 abc abc2
4 abc abc3
5 xyz xyz1
6 def def2
<强>详细强>:
print (df.groupby('id').cumcount())
0 0
1 0
2 0
3 1
4 2
5 0
6 1
dtype: int64