现有三年级*班的Excel工作簿,欲将所有三年级学生的成绩合并到一张工作簿。
import glob
import pandas as pd
df_all = pd.DataFrame()
for i in glob.glob(r"三年*班.xlsx",recursive=True):
df = pd.read_excel(i)
df_all = df_all._append(df)
df_all.to_excel("三年级总成绩单.xlsx",index=False)
glob库:
glob
是python的标准库模块,主要用来查找目录
和文件
,可以使用*、?、[]
这三种通配符
对路径中的文件进行匹配。常用的两个方法有:glob.glob() 和 glob.iglob
*
:代表0个或多个字符?
:代表一个字符[]
:匹配指定范围内的字符,如[0-9]匹配数字
def glob(pathname, *, recursive=False):
pathname
:要匹配的路径recursive
:true会递归匹配符合的文件路径,默认是False
实现步骤
一、定义一个空的数据框df_all
df_all = pd.DataFrame()
二、利用glob()方法筛选文件
for i in glob.glob(r"三年*班.xlsx",recursive=True):
三、添加到df_all()
注意:若出现AttributeError: 'DataFrame' object has no attribute 'append'的报错则说明.append()应该改为._append()
df_all = df_all._append(df)
四、存入总的工作簿
df_all.to_excel("三年级总成绩单.xlsx",index=False)