美文网首页pythonPython
pandas格式化输出文本-excel篇

pandas格式化输出文本-excel篇

作者: xiaoji_hb | 来源:发表于2020-09-14 09:12 被阅读0次

    pandas是一款功能很强大的python模块,可以直接将数据输出到excel文件。

    writer = pd.ExcelWriter('test.xlsx')
    test.to_excel(writer,sheet_name='test')
    writer.save()
    

    对于excel文件数据的输出,首先需要打开一个excel编辑器writer,然后在不同的sheet写入数据,此时写出的数据格式是默认的参数,不同的软件显示也会有差异,以下是我运行之后的输出结果,header自动加粗,添加边框,居中对齐,内容为常规字体,右对齐。

    pd_excel_direct_output

    对于默认的输出格式,在某些情况下并不能很好的展示数据,不同类型的数据所在位置、对齐方式都有很大差别。格式化输出能让我们更好的展示数据,文件的可读性更高,为了实现这个目的,我们可以在数据输出的时候指定需要展示的格式。

    1. 输出内容后修改格式

    这部分主要是先将数据输出到文件,然后修改数据的格式。

    # 写入数据
    test = pd.read_excel('test.xlsx')
    writer = pd.ExcelWriter('pandas_excel.xlsx',engine='xlsxwriter')
    test.to_excel(writer,sheet_name='test',index=False)
    # 创建处理对象,指定数据所在的sheet
    workbook  = writer.book
    worksheet = writer.sheets['test']
    # 格式1
    header_format = workbook.add_format({'bold':True,'font_color':'red','font_size':20,'align':'center'})
    header_format.set_align('vcenter')
    # 格式2
    rank_format = workbook.add_format({'font_color': 'black','border':2,'align':'left'})
    rank_format.set_bg_color('green')
    # 格式3
    age_format = workbook.add_format({'bold':True,'font_color':'brown','font_size':15,'italic':True,'align':'right'})` 
    # 格式4
    sex_format = workbook.add_format({'font_color': 'green','underline':1,'align':'center'})
    # 第2行整行格式修改
    worksheet.set_row(1,50,header_format)
    # A列格式修改
    worksheet.set_column('A3:A6',20, rank_format)
    # B列格式修改
    worksheet.set_column('B3:B6',5,sex_format)
    # C列格式修改
    worksheet.set_column('C3:C6',30,age_format)`
    # 第2行整行格式修改
    worksheet.set_row(1,50,header_format)
    # A列格式修改
    worksheet.set_column('A3:A6',20, rank_format)
    # B列格式修改
    worksheet.set_column('B3:B6',5,sex_format)
    # C列格式修改
    worksheet.set_column('C3:C6',30,age_format)`
    

    首先将数据写入到pandas_excel.xlsx文件中,然后通过add_formate设定显示格式,最后以行列为单位进行格式修改,修改之后效果图如下。

    pandas_string_modify_whole_row_column

    各行/列格式说明如下。

    第2行:行高50,字体红色,加粗,字号20,中部居中;
    第1列:字体黑色,列宽20,加边框,左对齐,绿色填充;
    第2列:字体绿色,添加下划线,列宽5,水平居中;
    第3列:字体棕色,倾斜,字号15,列宽30,右对齐。

    2. 直接格式化输出

    已经输出的数据可以按照上述方法进行设置,若数据还没有输出,可以在输出的同时指定格式。

    # 创建新sheet
    worksheet1 = workbook.add_worksheet('test1')
    # 输出表头
    for col_num, value in enumerate(test.columns.values):      
        worksheet1.write(0, col_num, value, header_format)
    # 输出正文内容
    for index, value in test.iterrows():    
        for i in range(len(test.columns)):        
            worksheet1.write(index+1, i, value[i],sex_format)
    

    在新建的test1-sheet中直接写入格式化的文本,结果见下图。

    pandas_excel_string_out_directly

    以上就是格式化文本输出到excel的简要介绍,除了文本格式输出,还可以对数据显示方式,比如日期、百分比等进行设置,还可以进行图表的绘制和插入图片等,具体的方法可参照参考文章。

    3. 参考文章

    [1] https://xlsxwriter.readthedocs.io/working_with_pandas.html
    [2] https://pandas.pydata.org/pandas-docs/stable/user_guide/io.html#writing-excel-files

    相关文章

      网友评论

        本文标题:pandas格式化输出文本-excel篇

        本文链接:https://www.haomeiwen.com/subject/tepoektx.html