根据发生的重复行数替换值

replace values based on Number of duplicate rows are occured

我有一个数据框,看起来像这样

       site  Active
0     deals  Active
1     deals  Active
2     deals  Active
3  discount  Active
4  discount  Active

我不想删除重复项,但我想根据站点列更改活动列值,例如,活动必须根据站点列中的重复项更改为不活动,最后一个重复项必须活跃,除此之外 Inactive

预计

       site    Active
0     deals  InActive
1     deals  InActive
2     deals    Active
3  discount  InActive
4  discount    Active

使用 Series.duplicated with keep='last' and pass to DataFrame.loc 设置新值:

df.loc[df['site'].duplicated(keep='last'), 'Active'] = 'InActive'
print (df)
       site    Active
0     deals  InActive
1     deals  InActive
2     deals    Active
3  discount  InActive
4  discount    Active