shabu shankar
shabu shankar

Reputation: 33

replace values based on Number of duplicate rows are occured

I have a dataframe ,that looks like this

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

i don't want to drop the duplicate items, but i want to change the Active columns value based on Site column,for example Active has to change inactive based on duplicate item in site column,last duplicate item has to Active, other than that Inactive

Expected

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

Upvotes: 1

Views: 73

Answers (1)

jezrael
jezrael

Reputation: 862641

Use Series.duplicated with keep='last' and pass to DataFrame.loc for set new values:

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

Upvotes: 1

Related Questions