# _*_ coding:utf-8 _*_import osimport pandas as pd
![d40fcf838cc1c70c9c89d318c7f33baf.png](https://i-blog.csdnimg.cn/blog_migrate/e6e070c17bfd9bbaca9cb906d247b3c4.png)
![286ac933daf44267b3e0342e57626a96.png](https://i-blog.csdnimg.cn/blog_migrate/dfea0ae077dd075cf131b3735849e39f.jpeg)
dir="F:BaiduNetdiskDownloadExcel.VBA初中高级视频教程.80集第49集_文件夹遍历2011年报表"#设置工作路径
filename=[]#新建列表,存放每个文件数据框(每一个excel读取后存放在数据框)
frame=[]#新建列表,存放每个文件数据框(每一个excel读取后存放在数据框)
for root,files,documents in os.walk(dir):# print(root,documents)for document in documents:# print(document) # print(os.path.join(root,document))#返回文件路径及文档名称if document=="销售报表.xls":#至提取指定文档进行合并。
filename.append(os.path.join(root,document))#返回文档路径列表
df=pd.read_excel(os.path.join(root,document)) #excel转换成DataFrame
frame.append(df)else:continue
result=pd.concat(frame)
print(filename)# print(frame)# print(result)
result.head()# result.shape
result.to_excel("F:BaiduNetdiskDownloadExcel.VBA初中高级视频教程.80集第49集_文件夹遍历2011年报表concat.xls")
![c63bcbb0b4087247bfa078ecf81700d4.png](https://i-blog.csdnimg.cn/blog_migrate/8bea535bef81a0d8707e4a764ffb764f.jpeg)
如果:result=pd.concat(frame,axis=1,ignore_index=True) 默认axis=0
![ec2d0dd74279bc3f191f77c680b59742.png](https://i-blog.csdnimg.cn/blog_migrate/c6d92051b63db8206e2bfede04e1fc80.png)
如果:result=pd.concat(frame,axis=1,ignore_index=False)
默认axis=0,ignore_index=False
![8e38f705e17303a8fad8a5b4cea15d03.png](https://i-blog.csdnimg.cn/blog_migrate/a991fc805d517f77cb9f4d8184bd2933.png)
如果:result=pd.concat(frame,axis=0,ignore_index=False,keys=filename)#文档路径
![94ffcbd1bbd068c47884ab4682869b4d.png](https://i-blog.csdnimg.cn/blog_migrate/ecc95939c1c444d0e1a21d0070666b5d.jpeg)
df=pd.read_excel("F:BaiduNetdiskDownloadExcel.VBA初中高级视频教程.80集第49集_文件夹遍历2011年报表concat.xls",usecols="a,c:g",index_col="订单号",)
df.to_excel("F:BaiduNetdiskDownloadExcel.VBA初中高级视频教程.80集第49集_文件夹遍历2011年报表concat2.xls")
![44ceee704b28c8f66c5f1ce0b402043e.png](https://i-blog.csdnimg.cn/blog_migrate/d3086591f64866d6d8d19138cbfefaff.jpeg)
备注:
# for i in os.walk(dir):#依次返回路径,文件夹,工作表,先返回当前文件夹的路径+文件夹名称1+工作表,然后在返回文件夹1中的路径,文件,工作表,直至遍历到没文件夹# # print(i[0])# # print(i[0],i[1],i[2])# # print(i[0], i[1]+i[2])# # print(i[2])# filename.append(i[2])# print(filename)# print(len(filename))
s1=pd.Series(['a','b'],["w",'q'])
s2=pd.Series([2,8],['r','y'])
s3=pd.Series(['b','f'])
s4=pd.Series(['b','h','e'])
df=pd.concat([s1,s2],ignore_index=False)
w a
q b
r 2
y 8
df=pd.concat([s1,s2],ignore_index=True)
0 a
1 b
2 2
3 8
df=pd.concat([s1,s2,s3],ignore_index=True)#默认 join='outer'
0 a
1 b
2 2
3 8
4 b
5 f
df1=pd.DataFrame([list(s1),list(s2)],columns=['a1','a2'])
df2=pd.DataFrame([list(s3),list(s4)],columns=['a1','a2','a3'])
df0=pd.concat([df1,df2],sort=True/False)#默认sort=None,可输出,但会报警告信息,默认join=“outer”,axis=0,ignore_index=False
print(df0)
a1 a2 a3
0 a b NaN
1 2 8 NaN
0 b f None
1 b h e
如果:df0=pd.concat([df1,df2],join='inner',sort=False)
a1 a2
0 a b
1 2 8
0 b f
1 b h
如果:df0=pd.concat([df1,df2],join='inner',sort=False,axis=1)#按列追加合并
a1 a2 a1 a2 a3
0 a b b f None
1 2 8 b h e
如果:df0=pd.concat([df1,df2],join='inner',sort=False,axis=0,ignore_index=True)#舍弃原索引
a1 a2
0 a b
1 2 8
2 b f
3 b h
print(df0.set_index(df0["a1"]))
a1 a2
a1
a a b
2 2 8
b b f
b b h