基于Python将数据写入到Excel

系统 1854 0
一、参考资料

[1].pandas.DataFrame.to_excel
[2].Working with Python Pandas and XlsxWriter

二、程序示例
1. pandas.DataFrame.to_excel最简单的写入

 当写入的文件只占有一个sheet时,可以利用pandas.DataFrame.to_excel()直接写入。该函数的用法如下,关于参数的具体介绍,可以参考参考资料[1]的内容。
DataFrame.to_excel(excel_writer, sheet_name=‘Sheet1’, na_rep=’’, float_format=None, columns=None, header=True, index=True, index_label=None, startrow=0, startcol=0, engine=None, merge_cells=True, encoding=None, inf_rep=‘inf’, verbose=True, freeze_panes=None)

            
              
                # 1. 基本模块的导入
              
              
                import
              
               numpy 
              
                as
              
               np

              
                import
              
               pandas 
              
                as
              
               pd


              
                # 2. 创建写入数据
              
              
DF_1 
              
                =
              
               pd
              
                .
              
              DataFrame
              
                (
              
              np
              
                .
              
              random
              
                .
              
              rand
              
                (
              
              
                12
              
              
                )
              
              
                .
              
              reshape
              
                (
              
              
                6
              
              
                ,
              
              
                2
              
              
                )
              
              
                ,
              
              columns
              
                =
              
              
                list
              
              
                (
              
              
                'AB'
              
              
                )
              
              
                )
              
              
                # 3. 将数据写入excel
              
              
DF_1
              
                .
              
              to_excel
              
                (
              
              r
              
                'C:\Users\Desktop\ExcelTest\DF_1.xlsx'
              
              
                ,
              
              sheet_name
              
                =
              
              
                'DF_1'
              
              
                ,
              
              index
              
                =
              
              
                False
              
              
                )
              
              
                print
              
              
                (
              
              
                'DF_1 has been finished.'
              
              
                )
              
            
          
2. 将多个数据框写入同一个Excel文件的不同Sheet中
            
              
                # 1. 基本模块的导入
              
              
                import
              
               numpy 
              
                as
              
               np

              
                import
              
               pandas 
              
                as
              
               pd


              
                # 2. 创建不同的写入数据
              
              
DF_1 
              
                =
              
               pd
              
                .
              
              DataFrame
              
                (
              
              np
              
                .
              
              random
              
                .
              
              rand
              
                (
              
              
                12
              
              
                )
              
              
                .
              
              reshape
              
                (
              
              
                6
              
              
                ,
              
              
                2
              
              
                )
              
              
                ,
              
              columns
              
                =
              
              
                list
              
              
                (
              
              
                'AB'
              
              
                )
              
              
                )
              
              
DF_2 
              
                =
              
               pd
              
                .
              
              DataFrame
              
                (
              
              np
              
                .
              
              random
              
                .
              
              rand
              
                (
              
              
                12
              
              
                )
              
              
                .
              
              reshape
              
                (
              
              
                6
              
              
                ,
              
              
                2
              
              
                )
              
              
                ,
              
              columns
              
                =
              
              
                list
              
              
                (
              
              
                'CD'
              
              
                )
              
              
                )
              
              
                +
              
              
                1
              
              
DF_3 
              
                =
              
               pd
              
                .
              
              DataFrame
              
                (
              
              np
              
                .
              
              random
              
                .
              
              rand
              
                (
              
              
                12
              
              
                )
              
              
                .
              
              reshape
              
                (
              
              
                6
              
              
                ,
              
              
                2
              
              
                )
              
              
                ,
              
              columns
              
                =
              
              
                list
              
              
                (
              
              
                'EF'
              
              
                )
              
              
                )
              
              
                +
              
              
                2
              
              
DF_4 
              
                =
              
               pd
              
                .
              
              DataFrame
              
                (
              
              np
              
                .
              
              random
              
                .
              
              rand
              
                (
              
              
                12
              
              
                )
              
              
                .
              
              reshape
              
                (
              
              
                6
              
              
                ,
              
              
                2
              
              
                )
              
              
                ,
              
              columns
              
                =
              
              
                list
              
              
                (
              
              
                'GH'
              
              
                )
              
              
                )
              
              
                +
              
              
                3
              
              
                # 3. 数据写出
              
              
                with
              
               pd
              
                .
              
              ExcelWriter
              
                (
              
              r
              
                'C:\Users\Desktop\ExcelTest\DF_All.xlsx'
              
              
                )
              
              
                as
              
               writer
              
                :
              
              
    DF_1
              
                .
              
              to_excel
              
                (
              
              writer
              
                ,
              
              sheet_name
              
                =
              
              
                'DF_1'
              
              
                )
              
              
    DF_2
              
                .
              
              to_excel
              
                (
              
              writer
              
                ,
              
              sheet_name
              
                =
              
              
                'DF_2'
              
              
                )
              
              
    DF_3
              
                .
              
              to_excel
              
                (
              
              writer
              
                ,
              
              sheet_name
              
                =
              
              
                'DF_3'
              
              
                )
              
              
    DF_4
              
                .
              
              to_excel
              
                (
              
              writer
              
                ,
              
              sheet_name
              
                =
              
              
                'DF_4'
              
              
                )
              
              
writer
              
                .
              
              save
              
                (
              
              
                )
              
              
writer
              
                .
              
              close
              
                (
              
              
                )
              
              
                print
              
              
                (
              
              
                'Finished.'
              
              
                )
              
            
          
3. 基于函数将多个数据框写入同一个Excel文件的不同Sheet中
            
              
                # 1. 基本模块的导入
              
              
                import
              
               os

              
                import
              
               numpy 
              
                as
              
               np

              
                import
              
               pandas 
              
                as
              
               pd

              
                from
              
               openpyxl 
              
                import
              
               load_workbook


              
                # 2. 函数定义
              
              
                def
              
              
                ExcelAddSheet
              
              
                (
              
              df
              
                ,
              
              outfile
              
                ,
              
              sheetname
              
                )
              
              
                :
              
              
    writer 
              
                =
              
               pd
              
                .
              
              ExcelWriter
              
                (
              
              outfile
              
                ,
              
              engine
              
                =
              
              
                'openpyxl'
              
              
                )
              
              
                # engine貌似是操作xlsx文件的引擎,此处用openpyxl
              
              
                # 2.1 检查.xlsx文件是否存在,不存在则先创建
              
              
                if
              
               os
              
                .
              
              path
              
                .
              
              exists
              
                (
              
              outfile
              
                )
              
              
                !=
              
              
                True
              
              
                :
              
              
        df
              
                .
              
              to_excel
              
                (
              
              writer
              
                ,
              
              sheet_name
              
                =
              
              sheetname
              
                ,
              
              index
              
                =
              
              
                False
              
              
                )
              
              
                # index=False,表示忽略行索引
              
              
                else
              
              
                :
              
              
                # book这句及后面的writer.book = book必须存在,否则sheet会被覆盖(为什么?)
              
              
        book 
              
                =
              
               load_workbook
              
                (
              
              writer
              
                .
              
              path
              
                )
              
              
        writer
              
                .
              
              book 
              
                =
              
               book
        df
              
                .
              
              to_excel
              
                (
              
              writer
              
                ,
              
              sheet_name
              
                =
              
              sheetname
              
                ,
              
              index
              
                =
              
              
                False
              
              
                )
              
              
    writer
              
                .
              
              save
              
                (
              
              
                )
              
              
    writer
              
                .
              
              close
              
                (
              
              
                )
              
              
                # 3. 测试函数
              
              
f 
              
                =
              
              
                lambda
              
               x
              
                ,
              
              y
              
                :
              
              x
              
                +
              
              y 
              
                # 辅助列名的构建
              
              
                for
              
               ii 
              
                in
              
              
                range
              
              
                (
              
              
                1
              
              
                ,
              
              
                5
              
              
                )
              
              
                :
              
              
    Columns 
              
                =
              
              
                [
              
              f
              
                (
              
              i
              
                ,
              
              
                '_'
              
              
                +
              
              
                str
              
              
                (
              
              ii
              
                )
              
              
                )
              
              
                for
              
               i 
              
                in
              
              
                list
              
              
                (
              
              
                'AB'
              
              
                )
              
              
                ]
              
               
    DF 
              
                =
              
               pd
              
                .
              
              DataFrame
              
                (
              
              np
              
                .
              
              random
              
                .
              
              rand
              
                (
              
              
                12
              
              
                )
              
              
                .
              
              reshape
              
                (
              
              
                6
              
              
                ,
              
              
                2
              
              
                )
              
              
                ,
              
              columns
              
                =
              
              Columns
              
                )
              
              
    ExcelAddSheet
              
                (
              
              DF
              
                ,
              
              r
              
                'C:\Users\Desktop\ExcelTest\DF_All_Test.xlsx'
              
              
                ,
              
              
                'DF'
              
              
                +
              
              
                '_'
              
              
                +
              
              
                str
              
              
                (
              
              ii
              
                )
              
              
                )
              
              
                print
              
              
                (
              
              
                'Finished.'
              
              
                )
              
            
          

更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论