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")