Pandas Dataframe中的新列与给定列中的重复项有关

时间:2018-05-30 19:21:06

标签: python-3.x pandas dataframe

嗨我有一个带有列的数据帧" 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

有人能建议我解决这个问题吗?

1 个答案:

答案 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