如果来自一列的数据存在于另一列中,则合并两个数据框

Posted

技术标签:

【中文标题】如果来自一列的数据存在于另一列中,则合并两个数据框【英文标题】:Merge two data Frame if data from one column is present in another column 【发布时间】:2020-11-05 06:46:50 【问题描述】:

我有两个 excel 文件。

Excel 1 - a.xlsx containing
SL NO       Fruit   Colour  Quantity
1           Apple       
2           Orange      
3           Banana      
4           Pineapple       
5           pears       
6           Grape       
7           Mango       

和 Excel 2 - b.xlsx 包含

SL NO       Fruit       Colour      Quantity
1           Apple       RED         2
2           Orange      Orange      4
3           Pineapple   Brown       6
4           Grape       Purple      8

我想要一个像这样完整的新excel文件

SL NO       Fruit       Colour      Quantity
1           Apple       RED         2
2           Orange      Orange      4
3           Banana      
4           Pineapple   Brown       6
5           pears       
6           Grape       Purple      8
7           Mango        

我如何执行相同的操作?应根据水果名称进行匹配。我可以将它加载到不同的数据帧中,但是之后如何操作并使用合并的输出创建一个新的 excel? 我是 python 新手,我正在学习,所以任何帮助将不胜感激。 提前致谢!

【问题讨论】:

Fruit设置为两个数据帧的索引,然后在第二个数据帧(来自b.xlsx)上使用第一个数据帧的索引(来自a.xlsx)的索引? 【参考方案1】:

首先您需要安装 pandas 库。如果您还没有,请使用:

pip install pandas

现在,导入 pandas 就可以使用 pd.merge 函数了:

import pandas as pd

new_excel = pd.merge(excel_1, excel_2, on = ['Fruit'], how = 'left')

这将类似于 excel 中的 VLOOKUP 函数,如果这有助于您理解的话。如果您感兴趣,请查看此帖子以了解更多信息:Pandas Merging 101

【讨论】:

以上是关于如果来自一列的数据存在于另一列中,则合并两个数据框的主要内容,如果未能解决你的问题,请参考以下文章

检查一列中的值是不是存在于另一列中,如果存在,则将另一列中的值复制到新列中

如果元素存在于数据框的另一列中,则删除列表元素

合并其中一列或另一列中缺少数据的数据框

如果匹配,如何合并两个数据帧并从新列中的另一列返回数据?

PySpark查找另一列中是否存在一列中的模式

如果同一行中另一列中的值匹配,如何比较列的两个值