检查两列的值是否相同,然后在其中一列中填充nan



假设我的df看起来像:

Col A          Col B
red             red
blue            pink
green           green
orange          green
black           black

我的输出应该是:

Col A          Col B
red              nan
blue             pink
green            nan
orange           green
black            nan

我怎样才能做到这一点?

您可以使用Series.mask:

df['Col B'] = df['Col B'].mask(df['Col A'] == df['Col B'])
Col A  Col B
0     red    NaN
1    blue   pink
2   green    NaN
3  orange  green
4   black    NaN

我真的很喜欢接受答案中的Series.mask方法,但我想我也应该尝试.apply方法:

df['ColB'] = df.apply(lambda x:  np.NaN if x['ColA']==x['ColB'] else x['ColB'], axis=1)

相关内容

最新更新