虽然python+pandas自身有强大的数据分析和展现能力,可实际工作中,不是每个人都会coding的,所以,有时候把粗加工的数据,以excel的形式提供数据,会更灵活、更适合大部分,这里介绍一种可以生成多子表excel的方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | import pandas as pd from openpyxl import Workbook from openpyxl.reader.excel import load_workbook #数据暂存容器 xlsDatas = {} #保存路径 savePath = '.../test-excel.xlsx' #获取数据 df1 = pd.DataFrame( { '日期': ['2021-01-01', '2021-01-02', '2021-01-03', '2021-01-04'], '订单数': [1234, 1321, 3456, 6543], '用户数': [234, 787, 987, 545]}, columns=['日期', '订单数', '用户数'] ) xlsDatas['概况'] = df1 #子表名-子表数据 df2 = pd.DataFrame( [ [56335, '兰州拉面', 15.0, '2021-01-01 12:12:12'], [45135, '山西削面', 13.0, '2021-01-01 12:16:12'], [16335, '兰州拉面', 15.0, '2021-01-01 12:32:12'] ], index=list('123'), columns=['用户id', '产品名称', '消费金额', '消费日期'] ) xlsDatas['订单列表'] = df2 #使用Workbook保存数据 book0 = Workbook() book0.save(savePath) #先保存一个空excel文件,然后往里塞子表,实际会有一个空的Sheet子表 book = load_workbook(savePath) writer = pd.ExcelWriter(savePath, engine='openpyxl') #选择openpyxl引擎 writer.book = book for k in xlsDatas : xlsDatas[k].to_excel(writer, sheet_name=k) writer.save() |
————
over
转载请注明出处:http://www.jiangkl.com/2021/08/pandas_openpyxl_excel