• 51_Pandas (to_excel) 编写 Excel 文件 (xlsx, xls)


    51_Pandas (to_excel) 编写 Excel 文件 (xlsx, xls)

    使用 to_excel() 方法将 pandas.DataFrame 写入(保存)为 Excel 文件(扩展名:.xlsx、.xls)。

    这里,说明以下内容。

    • 安装openpyxl、xlwt
    • 将 DataFrame 写入 Excel 文件(创建/覆盖保存)
    • 将多个 DataFrames 写入 Excel 文件(创建/覆盖保存)
    • 将 DataFrame 写入现有 Excel 文件(追加)

    Excel文件的读取参考以下文章

    另外,用 pandas 读写 csv 文件和 json 文件见以下文章。

    安装openpyxl、xlwt

    to_excel() 在内部使用 openpyxl 和 xlwt 库。 openpyxl 用于编写 .xlsx(自 Excel 2007 以来的格式),xlwt 用于编写 .xls 文件(Excel 2003为止)。

    两者都可以用 pip 安装。 (环境pip3)

    $ pip install openpyxl
    $ pip install xlwt
    
    • 1
    • 2

    将 DataFrame 写入 Excel 文件(创建/覆盖保存)

    以下面的 pandas.DataFrame 为例。

    import pandas as pd
    
    print(pd.__version__)
    # 1.2.2
    
    df = pd.DataFrame([[11, 21, 31], [12, 22, 32], [31, 32, 33]],
                      index=['one', 'two', 'three'], columns=['a', 'b', 'c'])
    
    print(df)
    #         a   b   c
    # one    11  21  31
    # two    12  22  32
    # three  31  32  33
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    如果将路径指定为 to_excel() 方法的第一个参数,则如果文件不存在将创建一个新文件,如果文件存在则将其覆盖。注意覆盖时会删除原文件中的数据。稍后将描述将新工作表添加到现有文件的示例。 为参数 sheet_name 指定了工作表名称。如果省略,名称将为 Sheet1。

    df.to_excel('data/dst/pandas_to_excel.xlsx', sheet_name='new_sheet_name')
    
    • 1

    如果不需要编写索引(行名)和列(列名),请将参数索引和标题设置为 False。

    df.to_excel('data/dst/pandas_to_excel_no_index_header.xlsx',
                index=False, header=False)
    
    • 1
    • 2

    将多个 DataFrames 写入 Excel 文件(创建/覆盖保存)

    使用 ExcelWriter 对象,可以将多个 pandas.DataFrame 对象写入单独的工作表。
    例如,准备另一个 pandas.DataFrame 对象。

    df2 = df[['a', 'c']]
    print(df2)
    #         a   c
    # one    11  31
    # two    12  32
    # three  31  33
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    指定 pandas.ExcelWriter() 的路径以生成 ExcelWriter 对象并将其指定为 to_excel() 方法的第一个参数。 使用 with 块更容易,因为您不需要调用 writer.save() 和 writer.close()。

    with pd.ExcelWriter('data/dst/pandas_to_excel_multi.xlsx') as writer:
        df.to_excel(writer, sheet_name='sheet1')
        df2.to_excel(writer, sheet_name='sheet2')
    
    • 1
    • 2
    • 3

    将 DataFrame 写入现有 Excel 文件(追加)

    如果在 pandas.ExcelWriter() 中设置参数 mode=‘a’,它将处于追加模式,您可以将 pandas.DataFrame 作为新工作表添加到现有 Excel 文件中。

    with pd.ExcelWriter('data/dst/pandas_to_excel.xlsx', mode='a') as writer:
        df.to_excel(writer, sheet_name='new_sheet1')
        df2.to_excel(writer, sheet_name='new_sheet2')
    
    • 1
    • 2
    • 3

    如果你指定现有工作表名称,则会通过在工作表名称末尾添加以 1 开头的数字来添加新工作表。不会覆盖现有工作表。

    如果要编辑/添加(更改单元格值,添加新单元格等),同时保持现有Excel文件表格的格式而不是添加新表格,直接用openpyxl操作很方便。

  • 相关阅读:
    原码反码补码疑惑解答记录:127+1=-128
    STM32人脸识别系统设计(程序代码+论文)
    计算机专业毕业论文java毕业设计开题报告SSM超市管理系统[包运行成功]
    Linux学习-etcdctl安装
    【文章学习系列之模型】Koopa
    【博客455】Linux网桥如何接管attach上来的设备的流量
    EPF:一种基于进化、协议感知和覆盖率引导的网络协议模糊测试框架
    【生成二维码】
    TLS指纹校验原理和绕过
    QProcess类
  • 原文地址:https://blog.csdn.net/qq_18351157/article/details/126483158