比较两列并在熊猫中获取唯一值

Mar*_*ana 2 python csv pandas

我有一个数据框,其中一些值位于两个不同的列中

Ligand_hit,Ligand_miss
M00001,M00005
M00002,M00001
M00003,M00007
M00004,M00003
Run Code Online (Sandbox Code Playgroud)

我想创建一个新列,其中包含不在“Ligand_hit”中的“Ligand_miss”中的所有值。所需的输出类似于:

Ligand_hit,Ligand_miss,Unique
M00001,M00005,M00005
M00002,M00001,M00007
M00003,M00007,NaN
M00004,M00003,NaN
Run Code Online (Sandbox Code Playgroud)

我尝试使用“pandas.isin”,但它只输出布尔值。有没有一种简单的方法可以获得所需的结果?

Ale*_*mov 8

一个直接的熊猫解决方案可以是这个:

df["Unique"] = df["Ligand_miss"][~df["Ligand_miss"].isin(df["Ligand_hit"])].drop_duplicates()

  Ligand_hit Ligand_miss  Unique
0     M00001      M00005  M00005
1     M00002      M00001     NaN
2     M00003      M00007  M00007
3     M00004      M00003     NaN
Run Code Online (Sandbox Code Playgroud)

这为唯一值提供索引查找。