Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

pandas replace values condition based on another column

I have a dataframe that looks like this:

col1 col2
Yes  23123
No   23423423
Yes  34234
No   13213

I want to replace values in col2 so that if 'Yes' in col1 then return blank and if 'No' return the initial value

I want to see this:

 col1 col2
 Yes  
 No   23423423
 Yes  
 No   13213

I have tried this but 'No' is returning None:

   def map_value(x): 
      if x in ['Yes']:
         return ''
      else:
         return None

   df['col2'] = df['col1'].apply(map_value)
like image 945
thor Avatar asked Nov 30 '22 14:11

thor


1 Answers

there are many ways to go about this, one of them is

df.loc[df.col1 == 'Yes', 'col2'] = ''

Output:

col1 col2
Yes  
No   23423423
Yes  
No   13213
like image 129
Yuca Avatar answered Dec 04 '22 09:12

Yuca