如何利用python提取两个excel对比后的重复值的信息?

请问:例如我有两个Excel表格,一个表格Ex1是三列,每列都有5000行,有名称,信息,价格.另一个表格Ex2是我需要的物品的名称,这里的名称有的包含在Ex1中,有的不... 请问:

例如我有两个Excel表格,
一个表格 Ex1 是三列,每列都有5000行, 有名称, 信息, 价格.
另一个表格 Ex2 是我需要的物品的名称, 这里的名称有的包含在Ex1中, 有的不包含.

我想将两个Excel比较, 用Ex2的名称匹配Ex1的, 匹配上的将其 名称, 信息 ,价格都输出在新的excel中,没匹配上的输出在另一个新的excel中.

(Excel处理不了上万行了.)
展开
 我来答
我配合的演出
2019-05-08 · TA获得超过192个赞
知道小有建树答主
回答量:150
采纳率:38%
帮助的人:49.1万
展开全部
import pandas


def read_excel():
    data1 = pandas.read_excel(r'C:\Users\admin\Desktop\1.xlsx')
    data2 = pandas.read_excel(r'C:\Users\admin\Desktop\2.xlsx')
    data3=pandas.merge(data1, data2, on=['名称'], how='outer')
    print(data3)
    data3.to_excel(r'C:\Users\admin\Desktop\3.xlsx',index=False)


read_excel()

这3个excel分别是1,2,3表,用2匹配1,得到3表,我只是以名称比,相同的都统计了,3表里信息x,价格x为空的就是没匹配上的,这个要看具体数据的情况

追问
感谢您的回复, 您的描述很详细, 也很有用.
但是我遇到了另一个问题, 因为我的表2只有名称一列,所以这样做出来的表3有很多空的表格,很难区分哪些是对应上的.
所以能否继续解决一下问题:
例如您展示的表2里,我只有 [名称] 一列, 想与表1的名称对比,并将 [对应上表1中名称的] 那些列的 [所有信息] 输出到新的excel中,不要其他的信息,这样如何去做呢?
追答
import pandas


def read_excel():
    data1 = pandas.read_excel(r'C:\Users\Administrator\Desktop\1.xlsx')
    data2 = pandas.read_excel(r'C:\Users\Administrator\Desktop\2.xlsx')
    data3 = pandas.merge(data1, data2, on=['名称'], how='right')
    data3.to_excel(r'C:\Users\Administrator\Desktop\3.xlsx', index=False)


read_excel()

还是1,2,3表,2表匹配1,要是匹配上,1的值给2,没有匹配上还是2表原先的值

匿名用户
2020-02-24
展开全部
data3 = pandas.merge(data1, data2, on=['名称'], how='inner')

inner:内连接,取交集,这样改一下就符合你的要求了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式