快捷搜索:  汽车  科技

pandas怎么把多个excel合并?19pandas读取合并多个Excel文件

pandas怎么把多个excel合并?19pandas读取合并多个Excel文件import pandas as pd import os inputdir = r'C:\Users\Administrator\Desktop\读入多个excel文件并合并数据\成绩' df_merge = pd.DataFrame() for dirpath dirnames filenames in os.walk(inputdir): for filename in filenames: df = pd.read_excel(os.path.join(dirpath filename)) df_merge = df_merge.append(df ignore_index=False) df_m = df_merge.replace(['优秀' '良好' '中等' '

工作中遇到的痛点

在工作过程中,例如学生评定奖学金前,经常遇到这样的问题,要把多个结构相同,包括所有班级的每个学生全年所有科目成绩的Excel文件合并到一个Excel文件的sheet里。为完成该场景下的任务,通常的做法就是使用逐个Excel的复制和粘贴。当然,当Excel文件不多,每个表格的数据量不大,总的数据量不大并且各个表的列顺序一致的情况下,这种体力劳动还能达到合并的目的。但是,如果文件很多,表格很多,数据量很大各个表的列顺序不一致,的情况下,这样的工作方法不但低效而且还极容易由于疲劳复制和粘贴、列顺序错列而导致合并错误。

该痛点的pandas解决方法

通过pandas的os库的walk和path功能,遍历每个Excel文件名,读入每个Excel文件的sheet内容,然后再通过pandas.DataFrame将他们纵向合并起来即可。

多个Excel文件如下图所示

pandas怎么把多个excel合并?19pandas读取合并多个Excel文件(1)

每个Excel的sheet数据表如下图所示

pandas怎么把多个excel合并?19pandas读取合并多个Excel文件(2)

pandas实现

import pandas as pd import os inputdir = r'C:\Users\Administrator\Desktop\读入多个excel文件并合并数据\成绩' df_merge = pd.DataFrame() for dirpath dirnames filenames in os.walk(inputdir): for filename in filenames: df = pd.read_excel(os.path.join(dirpath filename)) df_merge = df_merge.append(df ignore_index=False) df_m = df_merge.replace(['优秀' '良好' '中等' '不合格' '不及格'] [90 80 70 0 0]) df_final = df_m.replace(['合格' '及格'] [ 60 60]) df_final.to_csv('合并后成绩.csv')合并后的结果

合并后的结果截图和上面最后一个截图界面一样,数据行为所有Excel的表格数据行之和,列是彼此表格对应的列。

猜您喜欢: