我有一个数据框,其中一些值位于两个不同的列中
Ligand_hit,Ligand_miss
M00001,M00005
M00002,M00001
M00003,M00007
M00004,M00003
我想创建一个新列,其中包含“Ligand_miss”中不在“Ligand_hit”中的所有值。所需的输出类似于:
Ligand_hit,Ligand_miss,Unique
M00001,M00005,M00005
M00002,M00001,M00007
M00003,M00007,NaN
M00004,M00003,NaN
我尝试使用“pandas.isin”,但它只输出 bool 值。有没有一种简单的方法可以达到预期的效果?
最佳答案
一个直接的 pandas 解决方案可以是这个:
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
这为唯一值提供索引查找。
关于python - 比较两列并在 Pandas 中获得唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46349345/