javascript - 2个excelA,B,都是1000行2列(a,b列),找出两个xls相同的a列并将A文件的b列对应到B文件中,求大神
高洛峰
高洛峰 2017-04-11 13:05:36
[JavaScript讨论组]

1.给一个方便理解的小例子
A文件.
小明 香蕉
小刚 苹果
小美 黄瓜
B文件.
小六
小明
小美
老王

输出:
小六
小明 香蕉
老王
小美 黄瓜

大神快来解答~python,java,c语言都行

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(3)
天蓬老师

在Excel中直接用公式就可以了

在B表的选择B1,输入“=HLOOKUP(A1,A!$A$1:$B$1000,2)”,按回车。

迷茫

你需要先装这么几个modules

pip install pandas xlrd xlsxwriter

就你问题的举例, a.xlsx以及b.xlsx我放在本地G盘

然后上码

import pandas as pd


df1 = pd.read_excel("g:/a.xlsx", header=None)
df2 = pd.read_excel("g:/b.xlsx", header=None)
dic = dict(df1.get_values())
lst = (i[0] for i in df2.get_values())
new_dic = {}
for i in lst:
    if i in dic:
        new_dic[i] = dic[i]
    else:
        new_dic[i] = None
print(new_dic)
df = pd.DataFrame.from_dict(new_dic, orient='index')
writer = pd.ExcelWriter('out.xlsx', engine='xlsxwriter')
df.to_excel(writer, sheet_name="Sheet1", header=None)
writer.save()
# 输出
# {'小六': None, '老王': None, '小明': '香蕉', '小美': '黄瓜'}

最终out.xlsx结果如图

解决思路就是把a中的两列按key-value组成一个dict, 然后用b列中的key去索引a中的value, 取不到的留空, 然后把新组合成的dict写入到excel文件中

迷茫
pip install pandas xlrd xlsxwriter openpyxl


import pandas as pd

afile = "E:\\logs\\a.xlsx"
bfile = "E:\\logs\\b.xlsx"

dfa = pd.read_excel(afile, 0, header=None)
dfb = pd.read_excel(bfile, 0, header=None)

dfc = pd.merge(dfa, dfb, how="inner", on=0)
dfd = pd.merge(dfb, dfc, how="outer", on=0)

dfd.to_excel(bfile, header=False, index=False)

注意,是内存操作,一般的文件是没问题的,相比下 性能较高。大文件 可以分别取出 第一列,然后求交集,再填充值,再写文件。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号