将所有重复行的列更改为相同的值

时间:2019-03-04 17:53:54

标签: python pandas numpy

在这里,我有一个DF,其中多个ID属于同一封电子邮件。我想将每个重复的电子邮件的所有重复电子邮件的ID更改为相同,并且不删除任何行。

样本DF:

 ID      Email
 1    a@gmail.com
 2    a@gmail.com
 3    b@gmail.com
 4    c@gmail.com
 5    c@gmail.com

期望DF:

 ID      Email
 1    a@gmail.com
 1    a@gmail.com
 3    b@gmail.com
 4    c@gmail.com
 4    c@gmail.com

1 个答案:

答案 0 :(得分:2)

IIUC

df['ID']=df.groupby('Email').ID.transform('first')
df
Out[195]: 
   ID        Email
0   1  a@gmail.com
1   1  a@gmail.com
2   3  b@gmail.com
3   4  c@gmail.com
4   4  c@gmail.com