Pandas基础之对excel表格的操作

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运行结果

Pandas基础之对excel表格的操作_第1张图片

Pandas基础之对excel表格的操作_第2张图片

Pandas基础之对excel表格的操作_第3张图片

拆分后的独立表格:

Pandas基础之对excel表格的操作_第4张图片

你可能感兴趣的:(pandas,excel,python)