python对比两张EXCEL表,将不同的数据生成新表?

在EXCEL中可以利用函数去筛选出,但数据量太多的话,生成速度实在太慢了。python有没有办法,可以做到快速筛选呢?附件分别是a和b的EXCEL表,想要做的是:b表中标记为‘2’的名称,需要跟a表中的名称做对比,如果在a表中找不到相同的名称,则输出这个名称,遍历后,生成这些不同名称的新表。有大神回答的话感激不尽。

import pandas as pd

# 数据表 a
df1 = pd.read_excel('C:/Users/Jelly/Desktop/a.xlsx')['名称']
# 数据表 b
df2 = pd.read_excel('C:/Users/Jelly/Desktop/b.xlsx')
# 筛选标记为2的名称
df2 = df2[df2['标记'] == 2]['名称']
# 数据表 a 转换为列表
aList = list(df1)
# 表头
columns = ['名称']
cList = []
# 遍历数据表 b
for k in df2:
# 判断 标记为2的名称是否在数据表中
if k not in aList:
# 输出
print(k)
cList.append(k)
df3 = pd.DataFrame(cList, columns=columns)
# 保存新数据表
df3.to_excel('c.xlsx', index=0)

a

b

c

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-04-22
用openpyxl库,如果是一行一行的对比那就先读一行b表格的数据,再读一行a表格的数据,把不同的数据存放在c表格里面,实现的方式为for循环,如果是b表格的一行数据跟a表格的所有行做对比,那就读一行b的数据再跟a表格里面的每一行数据做对比,输出到c表格,功能实现不到40行代码,我前几天就处理过类似的数据。
相似回答