python - 比较两列并在 Pandas 中获得唯一值

标签 python pandas csv

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

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/

相关文章:

python - 计算图像在屏幕上出现的次数

python - 即时从 python 中的 subprocess.run() 获取输出

scala - Spark : how can i create local dataframe in each executor

R 函数 read.csv 失败, "scan() expected ' 是一个真实的',得到......“消息

python - 应用引擎 : parse a csv data in uploaded file

python - 光调频 : When do I make preserve_rows=True

python - 在 pandas Groupby 语句中按索引而不是按标签对许多列进行分组

Python、Pandas 删除 Excel 中的行

python - 在 pandas 数据框中使用不同类型的列进行排名,每列都有升序和降序替代方案

python - 如何修复 ImportError : No module named main. 模型