栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python 对比两个电子表格数据的交集

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python 对比两个电子表格数据的交集

思路很简单,首先是将两个电子表格中需要对比的数据读取出来,默认读取出来的数据是元组,求交集最好的方式是把数据转换为集合,然后直接用交集运算符‘&’进行交集运算。再将运算好的数据转换为列表写入电子表格中,最后保存。

文件目录:

D:pythondoc下面有多个文件夹,每个文件夹下面有一个文件;

现在需要每个文件与D:pythondata.xlsx逐个交集。

每个交集生成一个电子表格保存到一个目录里面

代码如下:

from openpyxl import load_workbook, Workbook        #导入电子表格处理模块
import os        #导入系统模块

path = "D:pythondoc"        #读取文件列表

file_names = os.listdir(path)

for file_name in file_names:
    print(file_name)

    wb1 = load_workbook(f'D:pythondoc{file_name}{file_name}.xlsx')         #打开工作簿,并创建一个工作簿对象wb1
    wb2 = load_workbook('D:pythondata.xlsx')

    a_wb = wb1['导出']        #打开工作表,并创建一个工作表对象
    b_wb = wb2['导出']

    a_wb_max_row = len(a_wb['A'])   #取出第一列数据
    b_wb_max_row = len(b_wb['A'])

    for col in a_wb.iter_cols(min_row=2, max_row=a_wb_max_row, min_col=1, max_col=1, values_only=True):    #历遍工作表对象制定区域的数值
        col1 = set(col)     #将元祖转换为集合
    for col in b_wb.iter_cols(min_row=1, max_row=b_wb_max_row, min_col=1, max_col=1, values_only=True):
        col2 = set(col)
    col = col1&col2     #交集运算

    l_col3 = list(col)      #将集合转换为列表

    wb3 = Workbook()    #创建新工作簿对象
    c_wb = wb3.active   #创建活动工作表对象

    for i in range(len(l_col3)):     #将列表分行写入工作表对象
        d=[l_col3[i]]
        c_wb.append(d)

    wb3.save(f'D:python已生成文件A{file_name}.xlsx')       #保存数据到新工作簿

python代码可以不断优化,有时候自己可以编写一个函数,或者官方提供了函数,通过重复调用和调用官方函数减少代码数量。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/994800.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号