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文件如下图所示
每个Excel的sheet数据表如下图所示
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的表格数据行之和,列是彼此表格对应的列。