Python,pandas实现将excel表格的多个sheet拼接在一起并显示数据来源于哪一个表

该代码段展示了一个Python函数,用于读取一个Excel文件中的所有工作表,删除指定行,然后在每张表旁添加一列标识数据来源的工作表名。最后,它将所有工作表拼接成一个新的Excel文件。这个过程适用于处理具有相似结构的多工作表数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

导入需要的包

import xlrd
import pandas as pd
from pandas import DataFrame

目标文件:test.xlsx

 

 里面包含三个sheet,且每个sheet的前四行格式内容大致一样,需要提取所有人的信息

编写函数

#该函数的功能是将filename里面所有的sheet拼接按想要的行数起来存入另一个新表,并说明每行数据来源于哪一个sheet
def conect(filename,deleterow_list,outputefile):
    #将excel的路径赋值
    excel_name =(f'{filename}' )
    wb = xlrd.open_workbook(excel_name)
    sheet = wb.sheet_names()# 获取workbook中所有的表格,可以打印一下看看内容
    data_xls = pd.io.excel.ExcelFile('test.xlsx')

    for she in sheet:
        df = pd.read_excel(data_xls, sheet_name = f'{she}',header=None,index = None)
        df1 = df.drop(deleterow_list)
        #在表的旁边插入一列说明数据来源于哪一个sheet,标注出sheet名字
        df1.insert(df1.shape[1],'来源', f"{she}")
        # print(df1)
        df1.to_excel(f'{she}.xlsx', index=False)

    file = []
    for she in sheet:
        file.append(f'{she}.xlsx')
    # print(file)
    li = []
    for i in file:
        li.append(pd.read_excel(i))
    # print(li)
    writer = pd.ExcelWriter(f'{outputefile}')
    pd.concat(li).to_excel(writer,'Sheet1', index=False)
    writer.save()

if __name__ == "__main__":
    #如果需要删除每个sheet的前几行,可以用列表传入函数:[0,1,2,3]删除第0,1,2,3行
    #将最后拼接好的文件输出到output.xlsx
    conect('test.xlsx', [0, 1, 2, 3], 'output.xlsx')

最终结果:

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值