1.将指定文件夹下的excel表格合并,每个独立的表格合并后显示在大表格的sheet中
(1)把文件夹下面所有的文件都遍历出来
(2)循环读取每个文件
1.第一次读取的文件放入一个空的结果表中
2.从第二次开始每次都与这个结果表进行合并
(3)写入Excel
(4)所有表的表头行数要相同,通过header=1进行设置
2.将一个表格中的多个sheet合并为一个sheet
3.将一个表格按条件拆分为多个sheet
4.将一个表格按条件拆分为多个独立的表格
综合表.xlsx:
sheet1:
序号 | 姓名 | 出生日期 | 工作时长 | 当前日期 |
1 | 赵宇 | 2000/2/11 | 2 | 2024/3/25 |
2 | 李虎 | 2001/3/2 | 2 | 2024/3/25 |
3 | 李玉 | 2001/3/21 | 2 | 2024/3/25 |
4 | 王虎 | 2000/4/25 | 2 | 2024/3/25 |
5 | 林静 | 2001/6/30 | 2 | 2024/3/25 |
sheet2:
序号 | 姓名 | 出生日期 | 工作时长 | 当前日期 |
1 | 郝小花 | 2002/6/20 | 2 | 2024/3/25 |
2 | 何静 | 1990/1/20 | 2 | 2024/3/25 |
3 | 韩宇温 | 1991/3/8 | 2 | 2024/3/25 |
4 | 何瑞湖 | 1992/9/20 | 2 | 2024/3/25 |
5 | 华宏卓 | 1993/10/26 | 2 | 2024/3/25 |
6 | 王晨冠 | 1994/11/10 | 2 | 2024/3/25 |
7 | 杨晨平 | 1995/7/20 | 2 | 2024/3/25 |
sheet3:
序号 | 姓名 | 出生日期 | 工作时长 | 当前日期 |
1 | 裴善杰 | 1996/9/6 | 2 | 2024/3/25 |
2 | 刘云盛 | 1997/12/20 | 2 | 2024/3/25 |
3 | 曲衡昀 | 1998/11/18 | 2 | 2024/3/25 |
4 | 张逸迪 | 1999/4/15 | 2 | 2024/3/25 |
5 | 苏止妤 | 2000/2/20 | 2 | 2024/3/25 |
6 | 林逸 | 2001/1/20 | 2 | 2024/3/25 |
7 | 苏暖 | 2002/1/20 | 2 | 2024/3/25 |
8 | 贺嘉华 | 2003/1/20 | 2 | 2024/3/25 |
班级信息.xlsx
姓名 | 班级 | 学号 | 总分 |
aa | 1班 | a | 333 |
ab | 1班 | b | 455 |
ac | 1班 | c | 432 |
aa | 2班 | a | 420 |
ab | 2班 | b | 385 |
ac | 3班 | c | 325 |
aa | 3班 | a | 330 |
import pandas as pd
import os
#文件夹下的表格合并
fpath="D:/Pandas_data/"
result_sheet=pd.DataFrame()
for name in os.listdir(fpath):
sheet=pd.read_excel(fpath+name)
result_sheet=pd.concat([result_sheet,sheet])
print(result_sheet)
print('-'*80)
#一个表格里面的多个sheet工作表合并
fpath1="D:/综合表.xlsx"
df=pd.read_excel(fpath1,None)
df_excel=pd.DataFrame()
f_name=list(df.keys())
for i in f_name:
df_data=df[i]
df_excel=pd.concat([df_excel,df_data])
print(df_excel)
print('-'*80)
#将一个工作表拆分为多个sheet
fpath2="D:/班级信息.xlsx"
data=pd.read_excel(fpath2)
print(data)
print('-'*80)
sep_data=pd.ExcelWriter("D:/拆分.xlsx")
sep_list=list(data['班级'].drop_duplicates())
print(sep_list)
print('-'*80)
for i in sep_list:
sep_data1=data[data['班级']==i]
sep_data1.to_excel(sep_data,sheet_name=i)
sep_data.close()
print('-'*80)
#将一个工作表拆分为多个独立的xlsx
fpath3="D:/班级信息.xlsx"
data_xlsx=pd.read_excel(fpath3)
print(data_xlsx)
print('-'*80)
sep_list=list(data['班级'].drop_duplicates())
for i in sep_list:
data_write=data_xlsx[data_xlsx['班级']==i]
data_write.to_excel("D:/"+i+'.xlsx')
运行结果:
D:\Python\p\Scripts\python.exe "D:\Python\python-learning\数据分析(二)\excel的拆分与组合.py"
序号 姓名 出生日期 工作时长 当前日期
0 1 赵宇 2000-02-11 2 2024-03-25
1 2 李虎 2001-03-02 2 2024-03-25
2 3 李玉 2001-03-21 2 2024-03-25
3 4 王虎 2000-04-25 2 2024-03-25
4 5 林静 2001-06-30 2 2024-03-25
0 1 裴善杰 1996-09-06 2 2024-03-25
1 2 刘云盛 1997-12-20 2 2024-03-25
2 3 曲衡昀 1998-11-18 2 2024-03-25
3 4 张逸迪 1999-04-15 2 2024-03-25
4 5 苏止妤 2000-02-20 2 2024-03-25
5 6 林逸 2001-01-20 2 2024-03-25
6 7 苏暖 2002-01-20 2 2024-03-25
7 8 贺嘉华 2003-01-20 2 2024-03-25
0 1 郝小花 2002-06-20 2 2024-03-25
1 2 何静 1990-01-20 2 2024-03-25
2 3 韩宇温 1991-03-08 2 2024-03-25
3 4 何瑞湖 1992-09-20 2 2024-03-25
4 5 华宏卓 1993-10-26 2 2024-03-25
5 6 王晨冠 1994-11-10 2 2024-03-25
6 7 杨晨平 1995-07-20 2 2024-03-25
--------------------------------------------------------------------------------
序号 姓名 出生日期 工作时长 当前日期
0 1 赵宇 2000-02-11 2 2024-03-25
1 2 李虎 2001-03-02 2 2024-03-25
2 3 李玉 2001-03-21 2 2024-03-25
3 4 王虎 2000-04-25 2 2024-03-25
4 5 林静 2001-06-30 2 2024-03-25
0 1 郝小花 2002-06-20 2 2024-03-25
1 2 何静 1990-01-20 2 2024-03-25
2 3 韩宇温 1991-03-08 2 2024-03-25
3 4 何瑞湖 1992-09-20 2 2024-03-25
4 5 华宏卓 1993-10-26 2 2024-03-25
5 6 王晨冠 1994-11-10 2 2024-03-25
6 7 杨晨平 1995-07-20 2 2024-03-25
0 1 裴善杰 1996-09-06 2 2024-03-25
1 2 刘云盛 1997-12-20 2 2024-03-25
2 3 曲衡昀 1998-11-18 2 2024-03-25
3 4 张逸迪 1999-04-15 2 2024-03-25
4 5 苏止妤 2000-02-20 2 2024-03-25
5 6 林逸 2001-01-20 2 2024-03-25
6 7 苏暖 2002-01-20 2 2024-03-25
7 8 贺嘉华 2003-01-20 2 2024-03-25
--------------------------------------------------------------------------------
姓名 班级 学号 总分
0 aa 1班 a 333
1 ab 1班 b 455
2 ac 1班 c 432
3 aa 2班 a 420
4 ab 2班 b 385
5 ac 3班 c 325
6 aa 3班 a 330
--------------------------------------------------------------------------------
['1班', '2班', '3班']
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
姓名 班级 学号 总分
0 aa 1班 a 333
1 ab 1班 b 455
2 ac 1班 c 432
3 aa 2班 a 420
4 ab 2班 b 385
5 ac 3班 c 325
6 aa 3班 a 330
--------------------------------------------------------------------------------
进程已结束,退出代码为 0
拆分为多个sheet运行结果
拆分后的独立表格: