zl程序教程

您现在的位置是:首页 >  工具

当前栏目

pandas合并多个小Excel到一个大 Excel

Excelpandas 一个 多个 合并
2023-06-13 09:13:57 时间

pandas合并多个小Excel到一个大 Excel

【解决问题】

有10个这样的文件,它们的结构是一样的,现在想要把他们合并成(汇总)成一个大的文件,在添加一列标出数据来源于那个文件(方便查找复核)

【工作步骤】

1.遍历文件夹,得到要合并的 Excel文件列表

2.分别读取到 dataframe,给每个添加一列用于标记来源

3.使pd. concat进行df批量合并

4.将合并后的 dataframe输出为一个汇总的大excel

【过程】

最后的大excel文件如下

【代码与解析】

#导入相关的包

import os

import pandas as pd

path="D://yhd_python_home/yhd-pandas合并多个小excel文件为一个大excel/"

#读取文件夹是的所有文件,并存入到一个列表中

file_list=[]

for excel_name in os.listdir(f"{path}splits/"):

    file_list.append(excel_name)

file_list

#循环列表,读出每个excel文件,中的数据并在每个列表数据的最后一列添加一列“来源”,数据为文件名,把“身份证”数据类型为为str,要不然存入excel文件时以数值形式时excel显示就会出错,再append到一个大的列表中,再把列表concat为一个DataFrame,再写入excel,完成

data_list=[]

for x_name in file_list:

    read_file=f"{path}splits/{x_name}"

    list_one=pd.read_excel(read_file)

    list_one['来源']=x_name

    print(x_name)

data_list.append(list_one)

df_merge=pd.concat(data_list)

df_merge['身份证']=df_merge['身份证'].astype('str')

df_merge.shape

df_merge.head()

df_merge.to_excel(f"{path}汇总表.xlsx")