Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
718 views
in Technique[技术] by (71.8m points)

if statement - 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)
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...