Python实现多个Sheet文件合并,添加列

Python实现多个Sheet文件合并,添加列

需求:除了xx表,其它表添加xx_id字段;

代码如下

import os
import pandas as pd

base_dire = "./data"
result_file = './result/'

for path,dir_list,file_list in os.walk(base_dire):
    for file_name in file_list:
        #文件名转小写,文件结尾必须是'xls'
        if str(file_name).lower().endswith('xls'):
            file_path = os.path.join(path, file_name)
            #读取ExcelFile获取sheet_names
            df = pd.ExcelFile(file_path)
            sheet_names = df.sheet_names

            #如果'xx信息'在 sheet_names 这个列表里面能找到,就往下面循环,这样就排除了'Sheet1、Sheet2、Sheet3'的sheet
            if 'xx信息' in sheet_names:
                xx_df_row = pd.read_excel(file_path, sheet_name='xx信息')
                #loc函数,通过所以和列名获取数据
                xx_id = xx_df_row.loc[0, 'xxx']
                csv_file_path = f'{result_file}xx信息.csv'
                #xx信息表,不添加 xx_id 字段,所以不用处理直接写到csv
                xx_df_row.to_csv(csv_file_path, mode='a', index=False,
                                      header=(not os.path.exists(csv_file_path)))

                #删除'xx信息'这个sheet_name
                sheet_names.remove('xx信息')
                for sheet_name in sheet_names:
                    df_row = pd.read_excel(file_path, sheet_name=sheet_name)
                    #0表示列的位置,添加'patient_id'列
                    df_row.insert(0,'xx_id',xx_id)
                    csv_file_path = f'{result_file}{sheet_name}.csv'
                    #not os.path.exists(csv_file_path) 追加的时候,判断文件是否存在,如果不存在则添加标题行,否则不添加标题行
                    df_row.to_csv(csv_file_path, mode='a',index=False,header=(not os.path.exists(csv_file_path)))

reference
1.python to_csv追加DataFrame 表头重复问题
https://blog.csdn.net/qq_41562377/article/details/108661459?utm_source=app&app_version=4.15.2&utm_source=app
2.DataFrame 新增列的五种方法
https://blog.csdn.net/qq_35318838/article/details/102720553

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值