【python数据处理(3)】批量Excel数据表格合并汇总并生成为一个新的表格保存本地

1. 背景

实际操作中,往往会处理一些相同格式的Excel表格数据,比如某商家都是按照每月进行产品A和B的数据的统计,有时为了季度或者年度数据的处理,就需要将多个Excel中的表格数据汇总到一起(不是覆盖),并且表格的标题还不变,也就产生了题目的要求,方便之后的数据处理
在这里插入图片描述
假设表格中内容如下:(标题相同,但是数据不同,以第一个文件中数据为例)
在这里插入图片描述

2. 代码编写

主要是使用到了pandas里面的concat方法,先给出全部代码,然后进行解析

import os
os.chdir(r'C:\Users\86177\Desktop\demo')
import glob
import pandas as pd

paths = glob.glob('*.xlsx')
print(paths,'\n')
print('------------\n')
df = pd.DataFrame()
for path in paths:
    df_ = pd.read_excel(path)
    df = pd.concat([df,df_])

print(len(df))
df.to_excel('data.xlsx',index = False)

3. 代码解析

1)设置代码的运行路径,这个属于自己的编程习惯,每次运行代码之前会把路径设定在要操作的文件夹所对应的路径,方便对于该文件夹下数据的获取,比如这里就是设定在桌面的demo文件夹下

import os
os.chdir(r'C:\Users\86177\Desktop\demo')

2) 导入glob库是为了选取示例文件夹中所有的Excel文件(格式都是相同的),只需要将名称用*号代替,保留后缀名即可,*号前面的内容就是测试文件夹的路径,然后返回的是一个列表,包含了所有Excel文件的名称

import glob
paths = glob.glob(r'*.xlsx')
print(paths)

–> 输出结果为:

['data01.xlsx', 'data02.xlsx', 'data03.xlsx']

2) 创建一个空的DataFrame数据,因为pd.concat方法的使用是需要有一个基础的或者已有的DataFrame数据作为参考的,既然在读取第一份Excel表格前没有参照,就可以创建一个空的数据进行数据合并,合并之后的结果就是导入的第一份Excel表格中的内容

df = pd.DataFrame()

3)一次遍历paths中的数据,也就是文件的名称,同时由于系统运行设置的路径已经是在该文件夹里,所以文件名称也是要读取文件的路径了,接着就可以将数据逐次进行合并了,df会由一个空的数据,变成三个表格数据汇总后的总数据

for path in paths:
    df_ = pd.read_excel(path)
    df = pd.concat([df,df_])

4)最后将数据保存到本地,可以顺带输入一下汇总后的总长度,用来验证(这里的数值并不是真正意义上的每个月,只是用来做演示,将每个Excel中的数据都配置为30个,所以汇总后是90个)

print(len(df))
df.to_excel('data.xlsx',index = False)

5) 输出结果为:
在这里插入图片描述

原创文章 159 获赞 93 访问量 4万+

猜你喜欢

转载自blog.csdn.net/lys_828/article/details/104932473