解决Pandas的to_excel()写入不同Sheet,而不会被重写

发布时间:2020-12-18 10:17:12编辑:admin阅读(2476)

    一、概述

    在使用Pandas的to_excel()方法写入数据时,当我们想将多个数据写入一个Excel表的不同DataFrame中,虽然能够指定sheet_name参数,但是会重写整个Excel之后才会存储。

    现在有3个sheet,内容如下:

    >>> import pandas as pd
    >>> df1 = pd.read_excel('456.xlsx', sheet_name='Sheet1')
    >>> df2 = pd.read_excel('456.xlsx', sheet_name='Sheet2')
    >>> df3 = pd.read_excel('456.xlsx', sheet_name='Sheet3')
    >>> df1
       姓名 性别  年龄
    0  张三  男  23
    1  李四  男  25
    2  王五  男  21
    >>> df2
       姓名   身高   体重
    0  张三  170  130
    1  李四  171  126
    2  王五  165  140
    >>> df3
       姓名    收入
    0  张三  4000
    1  李四  4500
    2  王五  5000
    >>>


    一般情况下:

    >>> df1.to_excel('789.xlsx', sheet_name='Sheet1', index=False, header=True)
    >>> df2.to_excel('789.xlsx', sheet_name='Sheet2', index=False, header=True)
    >>> df3.to_excel('789.xlsx', sheet_name='Sheet3', index=False, header=True)
    结果如下:

    1.png

     

    只有最后一个存储的内饰数据,并不符合我们的需求。

    二、解决方法

    使用新的方式保存

    with pd.ExcelWriter('789.xlsx') as writer:
        df1.to_excel(writer, sheet_name='Sheet1', index=False, header=True)
        df2.to_excel(writer, sheet_name='Sheet2', index=False, header=True)
        df3.to_excel(writer, sheet_name='Sheet3', index=False, header=True)

    结果如下:

    1.png

     

    实现插入相同Excel表中不同Sheet_name!

     

    本文参考链接:

    https://blog.csdn.net/weixin_43060843/article/details/100766677


关键字