一、一个文件夹下多个工作簿的合并【单独Sheet】
import pandas as pd
import os
path = r'F:/Pycharm_projects/Numpy_Pandas_study/课件025/课件025-2/'
excel_all = pd.DataFrame() #第一次读取的文件放入一个空的表中,起名叫excel_all
#循环读取每个文件
for excel in os.listdir(path):
excel_one = pd.read_excel(path+excel,header=1,engine='openpyxl')#所有表表头行数要一至,通过header=1进行设置
excel_all = pd.concat([excel_all,excel_one]) #从第二次开始每次都与这个合并表进行合并
print(excel_all)
#保存
path2 = r'F:\Pycharm_projects\Numpy_Pandas_study\课件025\合并表.xlsx'
excel_all.to_excel(path2,engine='openpyxl')
二、同一工作簿中多个Sheet合并
import pandas as pd
路径 = 'C:/pandas/合并2.xlsx'
数据 = pd.read_excel(路径,None)
合并表 = pd.DataFrame()
字段名 = list(数据.keys()) # 返回['序号', '姓名', '电话']
for 列标签 in 字段名:
新数据 = 数据[列标签]
合并表 = pd.concat([合并表,新数据])
print(数据)
三、ExcelWriter针对不同工作表的操作
使用ExcelWriter()可以向同一个excel的不同sheet中写入对应的表格数据,首先需要创建一个writer对象,传入的主要参数为已存在容器表格的路径及文件名称:
- ExcelWriter对已经设置好的格式是无法更改的,因此,由pandas转成excel的时候,必须将格式清除,尤其是表头的格式,代码如下:
import pandas.io.formats.excel
pandas.io.formats.excel.header_style = None
- 标准的保存pandas表到excel的形式为:
writer = pd.ExcelWriter(‘c:/123.xlsx’)
数据.to_excel(writer, '工作表名') # 这里假设数据是一个pandas的dataframe
writer.save()
writer.close()
四、将一个工作表拆分成多个工作表
import pandas as pd
path = r'F:\Pycharm_projects\Numpy_Pandas_study\课件025\课件025-3\拆分.xlsx'
data = pd.read_excel(path,engine='openpyxl')
division = list(data['部门'].drop_duplicates()) # 返回:['办公室', '销售部', '保洁部'],笔记13.1
new_data = pd.ExcelWriter(r'F:\Pycharm_projects\Numpy_Pandas_study\课件025\多个Sheet.xlsx')
for i in division:
data1 = data[data['部门'] == i]
data1.to_excel(new_data,sheet_name=i)
new_data.save()
new_data.close()
五、将一个工作表拆分成多个工作簿
import pandas as pd
path = r'F:\Pycharm_projects\Numpy_Pandas_study\课件025\课件025-3\拆分.xlsx'
data = pd.read_excel(path,engine='openpyxl')
division = list(data['部门'].drop_duplicates()) # 返回:['办公室', '销售部', '保洁部'],笔记13.1
new_data = pd.ExcelWriter(r'F:\Pycharm_projects\Numpy_Pandas_study\课件025\多个Sheet.xlsx')
for i in division:
data1 = data[data['部门'] == i]
data1.to_excel('F:/'+ i + '.xlsx')