Python基于另外两列添加具有重复值的新列

Python基于另外两列添加具有重复值的新列,python,pandas,Python,Pandas,我有以下建议: Doc Item 1 1 1 1 1 2 1 3 2 1 2 2 我想添加第三列,其中包含重复的值,(1)如果列“Item”中有更改,则增量为1,(2)如果列“Doc”中有更改,则重新启动 实现这一目标的最佳方式是什么? 非常感谢。使用自定义lambda函数: 如果项中的值为整数,则可以使用: 请提供有关如何存储DF的代码,这将更容易帮助您做到这一点way@Tamir您可以使用pd.read_剪贴板,除非它是多索引或具有datetime Do

我有以下建议:

Doc Item
1    1
1    1
1    2
1    3
2    1
2    2
我想添加第三列,其中包含重复的值,(1)如果列“Item”中有更改,则增量为1,(2)如果列“Doc”中有更改,则重新启动

实现这一目标的最佳方式是什么? 非常感谢。

使用自定义lambda函数:

如果
项中的值为整数,则可以使用:


请提供有关如何存储DF的代码,这将更容易帮助您做到这一点way@Tamir您可以使用pd.read_剪贴板
,除非它是多索引或具有datetime
Doc Item  NewCol
 1    1     1
 1    1     1
 1    2     2
 1    3     3
 2    1     1 
 2    2     2
df['NewCol'] = df.groupby('Doc')['Item'].transform(lambda x: pd.factorize(x)[0]) + 1
print (df)
   Doc  Item  NewCol
0    1     1       1
1    1     1       1
2    1     2       2
3    1     3       3
4    2     1       1
5    2     2       2
df['NewCol'] = df.groupby('Doc')['Item'].rank(method='dense').astype(int)