使用 Python - 如果可以在"colB"中找到"colA",如何通过返回 "colA" 的值来创建新列 ( "new_col"



我被一个项目卡住了。我试图通过检查两列(a &B),如果A中的值存在于B中的任何位置,或者B的值存在于A中的任何位置,则返回该值,否则返回"。例如,有;

colA colB
0    x     
1    y     
2         c
3         d
4         x
5    d     
6          

第一次比较colA和colB后,我期待这样的结果;

colA colB new_colA
0    x             x
1    y             y
2         c         
3         d        d
4         x        x
5    d             d
6                   

和第二次;

colA colB new_colA new_colB
0    x             x         
1    y             y         
2         c                 c
3         d        d         
4         x        x         
5    d             d         
6                            

我不知道如何使用python。我试过excel,我只是使用条件格式来突出显示重复项。

如果在空单元格中有nan,则可以使用:

m = df['colB'].isin(df['colA'])
df['new_colA'] = df['colB'].where(m).fillna(df['colA'])
df['new_colB'] = df['colB'].mask(m)

输出:

colA colB new_colA new_colB
0    x  NaN        x      NaN
1    y  NaN        y      NaN
2  NaN    c      NaN        c
3  NaN    d        d      NaN
4  NaN    x        x      NaN
5    d  NaN        d      NaN
6  NaN  NaN      NaN      NaN

空字符串的变体:

m = df['colB'].isin(df['colA'])&df['colB'].ne('')
df['new_colA'] = df['colB'].where(m).fillna(df['colA'])
df['new_colB'] = df['colB'].mask(m).fillna('')

输出:

colA colB new_colA new_colB
0    x             x         
1    y             y         
2         c                 c
3         d        d         
4         x        x         
5    d             d         
6                            

相关内容

  • 没有找到相关文章

最新更新