Python 在Pandas中创建新列,其值对应于一对唯一的记录

Python 在Pandas中创建新列,其值对应于一对唯一的记录,python,pandas,Python,Pandas,我有一个包含两列整数的数据帧。我试图通过创建一个新列来标识记录的唯一对,该列是该记录对的唯一标识符。下面是我的数据示例 第1栏 第2栏 1. 2. 1. 2. 1. 3. 1. 4. 这里有一个方法: df['Column 3'] = (df.groupby(['Column 1', 'Column 2']).cumcount() == 0).cumsum() 输出: Column 1 Column 2 Column 3 0 1 2 1

我有一个包含两列整数的数据帧。我试图通过创建一个新列来标识记录的唯一对,该列是该记录对的唯一标识符。下面是我的数据示例

第1栏 第2栏 1. 2. 1. 2. 1. 3. 1. 4. 这里有一个方法:

df['Column 3'] = (df.groupby(['Column 1', 'Column 2']).cumcount() == 0).cumsum()
输出:

   Column 1  Column 2  Column 3
0         1         2         1
1         1         2         1
2         1         3         2
3         1         4         3
另一种方式:

df['Column 3'] = df.apply(tuple, axis=1).factorize()[0] + 1
第三种方式:

df['Column 3'] = (~df.duplicated(['Column 1', 'Column 2'])).cumsum()
谢谢你@shubhamsharan,第四条路:

df['Column 3'] = df.groupby(['Column 1', 'Column 2']).ngroup().add(1) 
…今天我学到了!妙计!第四种方法是
df.groupby(['Column 1','Column 2']).ngroup().add(1)
;-)