熊猫基于另一列替换值条件

tho*_*hor 1 if-statement pandas

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

col1 col2
Yes  23123
No   23423423
Yes  34234
No   13213
Run Code Online (Sandbox Code Playgroud)

我想替换col2中的值,以便如果col1中的“是”,则返回空白,如果“否”,则返回初始值

我想看这个:

 col1 col2
 Yes  
 No   23423423
 Yes  
 No   13213
Run Code Online (Sandbox Code Playgroud)

我已经尝试过了,但是'No'返回None:

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

   df['col2'] = df['col1'].apply(map_value)
Run Code Online (Sandbox Code Playgroud)

Yuc*_*uca 9

有很多方法可以解决这个问题,其中之一是

df.loc[df.col1 == 'Yes', 'col2'] = ''
Run Code Online (Sandbox Code Playgroud)

输出:

col1 col2
Yes  
No   23423423
Yes  
No   13213
Run Code Online (Sandbox Code Playgroud)