python写入excel_Python 如何将数据写入Excel的不同或同一个工作簿中

167d0868cd39570eaf1cda0f65ecad5d.png

在进行日常的数据分析统计时,很多时候我们需要将不同数据写入到同一个Excel文件的不同工作簿或同一个工作簿中。本文主要介绍 Python 如何将多个 DataFrame 写入同一个 Excel 不同或同一个工作簿中。

将多个 DataFrame 写入到 Excel 的不同工作簿中

实现代码如下:

# -*- coding: utf-8 -*-import pandas as pdimport inspect    class ExcelWriter:    def __init__(self, filepath, student_data, performance_data):​        self.writer = pd.ExcelWriter(filepath)        self.student_data = student_data        self.performance_data = performance_data​    @staticmethod    def save_execl(writer, sheet_name, header, data, startcol=0, startrow=0):        """        :param writer:  pd.ExcelWriter(filepath) 实例        :param sheet_name: sheet页        :param header: 字段表头        :param data: 数据 list        :param startcol: 起始列        :param startrow: 起始行        :return:        """        header = header.split(",")        df = pd.DataFrame(data)        df.to_excel(writer, sheet_name=sheet_name, header=header,                     index=False, startcol=startcol, startrow=startrow)        writer.save()​    def student_information(self):        """        将考生信息写入'考生信息表'        :param student_data:        :return:        """        header = "学号,姓名,性别,年龄"        ExcelWriter.save_execl(self.writer,"考生信息表",                                header, self.student_data)​    def performance_information(self):        """        将考生成绩写入'成绩信息表'        :param performance_data:        :return:        """        header = "学号,语文,数学,体育"        ExcelWriter.save_execl(self.writer,"成绩信息表",                                header, self.performance_data)​    def run_all(self):        for function in inspect.getmembers(self, predicate=inspect.ismethod):            if function[0] not in ["__init__","run_all"] :                function[1]()                    if __name__ == '__main__':    student_data = [["9527", "张三", "男", 27]]    performance_data = [["9527", 77, 88, 99]]    excelWriter = ExcelWriter("info.xlsx",                               student_data, performance_data)    excelWriter.run_all()​

输出 info.xlsx 如下:

b565f6da9f67285b6624473306cb01c0.png

Python如何将多个 DataFrame 写入到 Excel 的相同工作簿中

实现代码如下:

# -*- coding: utf-8 -*-​import pandas as pdimport inspectclass ExcelWriter:    def __init__(self, filepath, student_data, performance_data):​        self.writer = pd.ExcelWriter(filepath)        self.student_data = student_data        self.performance_data = performance_data​    @staticmethod    def save_execl(writer, sheet_name, header, data, startcol=0, startrow=0):        """​        :param writer:  pd.ExcelWriter(filepath) 实例        :param sheet_name: sheet页        :param header: 字段表头        :param data: 数据 list        :param startcol: 起始列        :param startrow: 起始行        :return:        """        header = header.split(",")        df = pd.DataFrame(data)        df.to_excel(writer, sheet_name=sheet_name, header=header, index=False, startcol=startcol, startrow=startrow)        writer.save()​    def student_with_performance_information(self):        """        考生成绩信息表        :param student_data:        :param performance_data:        :return:        """        header = "学号,姓名,性别,年龄"        ExcelWriter.save_execl(self.writer, "考生成绩信息表", header, self.student_data)        header = "学号,语文,数学,体育"        ExcelWriter.save_execl(self.writer,"考生成绩信息表", header,                               self.performance_data,                               startrow=len(self.student_data) + 2)​    def run_all(self):        for function in inspect.getmembers(self, predicate=inspect.ismethod):            if function[0] not in ["__init__","run_all"] :                function[1]()​if __name__ == '__main__':    student_data = [["9527", "张三", "男", 27]]    performance_data = [["9527", 77, 88, 99]]    excelWriter = ExcelWriter("info.xlsx", student_data, performance_data)    excelWriter.run_all()​​

输出 info.xlsx 如下:

c69f2e9ae5626296f6d7b3c124a6359e.png
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值