西北乱跑娃 --- python excel表合并

1 篇文章 0 订阅
1 篇文章 0 订阅

有时候会需要将所有的excel进行批量化的合并,而且一个excel里边有好多的表。这个时候就很难受,手工去做估计会瘫痪。因此鄙人写了一套代码,希望能帮助你,也希望你能给个关注:

import pandas as pd
import time
import os

# 写入字段
with open('result.csv', 'a+', encoding='gbk') as fo:
    fo.write('单位'+','+'时间+','+'事件'+','+'地址'+ '\n')
while True:
    filePath = input('请输入文件夹绝对路径:')
    for i, j, k in os.walk(filePath):
        # print(k)
        for files in k:
            file_name = filePath+'\\'+files
            #  每个excel指定30张表,可以修改
            for sheet in range(0, 30):
                try:
                    # 读取表位置,表的位置sheet_name是数字,与表中的名字无关
                    location = pd.read_excel(file_name, sheet_name=sheet, index_col=None, skipfooter=1)
                    # 读取表格信息,去除表头与表尾
                    info = pd.read_excel(file_name, sheet_name=sheet, index_col=None, header=2, skipfooter=2)
                    # 读取单个表头信息
                    address = re.findall('地址:(.*)', location.ix[0].values[0])[0]
                    # 读取项目所需字段
                    info = info.ix[:, ['单位', '时间', '事件', '地址']].values
                    # 遍历出所有表格信息
                    for detail in info:
                        val1 = str(detail[0])
                        val2 = str(detail[1])
                        val3 = str(detail[2])
                        val4 = str(detail[3])
                        # 将处理好的数据写入文件result.csv
                        with open('result.csv', 'a+', encoding='gbk') as f1:
                            f1.write(val1+','+val2+','+val3+','+val4+'\n')
                except:
                    continue
            print('{}处理完成'.format(files))

此代码涉及到很多知识点:
1、文件操作walk函数
2、pandas操作读取excel以及处理表与表的头尾
3、csv的写入,实质上不用导入csv库。每个逗号代表一个表格

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西北乱跑娃

万水千山总是情,犒赏一下行不行

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值