1.给一个方便理解的小例子
A文件.
小明 香蕉
小刚 苹果
小美 黄瓜
B文件.
小六
小明
小美
老王
输出:
小六
小明 香蕉
老王
小美 黄瓜
大神快来解答~python,java,c语言都行
1.给一个方便理解的小例子
A文件.
小明 香蕉
小刚 苹果
小美 黄瓜
B文件.
小六
小明
小美
老王
输出:
小六
小明 香蕉
老王
小美 黄瓜
大神快来解答~python,java,c语言都行
你需要先装这么几个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)
注意,是内存操作,一般的文件是没问题的,相比下 性能较高。大文件 可以分别取出 第一列,然后求交集,再填充值,再写文件。
10 回答11.1k 阅读
15 回答8.4k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
8 回答6.2k 阅读
2 回答2.6k 阅读✓ 已解决
在Excel中直接用公式就可以了
在B表的选择B1,输入“=HLOOKUP(A1,A!$A$1:$B$1000,2)”,按回车。