Pandas基础之对excel表格的操作

本文介绍了如何使用Python的pandas库对Excel文件进行操作,包括合并不同文件夹下的Excel表格到一个sheet,合并一个表格的多个sheet,以及根据特定条件拆分工作表。展示了具体代码实现过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.将指定文件夹下的excel表格合并,每个独立的表格合并后显示在大表格的sheet中

(1)把文件夹下面所有的文件都遍历出来

(2)循环读取每个文件

1.第一次读取的文件放入一个空的结果表中

2.从第二次开始每次都与这个结果表进行合并

(3)写入Excel

(4)所有表的表头行数要相同,通过header=1进行设置

2.将一个表格中的多个sheet合并为一个sheet

3.将一个表格按条件拆分为多个sheet

4.将一个表格按条件拆分为多个独立的表格

综合表.xlsx:

sheet1:

序号姓名出生日期工作时长当前日期
1赵宇2000/2/1122024/3/25
2李虎2001/3/222024/3/25
3李玉2001/3/2122024/3/25
4王虎2000/4/2522024/3/25
5林静2001/6/3022024/3/25

sheet2:

序号姓名出生日期工作时长当前日期
1郝小花2002/6/2022024/3/25
2何静1990/1/2022024/3/25
3韩宇温1991/3/822024/3/25
4何瑞湖1992/9/2022024/3/25
5华宏卓1993/10/2622024/3/25
6王晨冠1994/11/1022024/3/25
7杨晨平1995/7/2022024/3/25

sheet3:

序号姓名出生日期工作时长当前日期
1裴善杰1996/9/622024/3/25
2刘云盛1997/12/2022024/3/25
3曲衡昀1998/11/1822024/3/25
4张逸迪1999/4/1522024/3/25
5苏止妤2000/2/2022024/3/25
6林逸2001/1/2022024/3/25
7苏暖2002/1/2022024/3/25
8贺嘉华2003/1/2022024/3/25

班级信息.xlsx

姓名班级学号总分
aa1班a333
ab1班b455
ac1班c432
aa2班a420
ab2班b385
ac3班c325
aa3班a330

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

拆分后的独立表格:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值