【问题标题】:How to highlight the first row of this python code (to_excel)?如何突出显示此 python 代码(to_excel)的第一行?
【发布时间】:2021-06-04 17:12:45
【问题描述】:

是否可以突出显示这些数据框的第一行,以便当它们垂直堆叠到 Excel 中时,它们会以黄色突出显示。

将熊猫导入为 pd

data1 = """
class    precision   recall 
<18      0.0125         12           
18-24    0.0250         16 
25-34    0.00350         4
"""
data2 = """
class    precision   recall 
<18      0               0           
18-24    0.25            6 
25-34    0.35            5
"""

#create 2 df for sample
df1 = pd.read_csv(pd.compat.StringIO(data1), sep='\s+')
df1.name = "Dataframe1"
df2 = pd.read_csv(pd.compat.StringIO(data2), sep='\s+')
df2.name = "Dataframe2"
print(df1);print(df2)

writer = pd.ExcelWriter('e:\\test.xlsx',engine='xlsxwriter')
workbook=writer.book
worksheet=workbook.add_worksheet('Result')
writer.sheets['Result'] = worksheet
worksheet.write_string(0, 0, df1.name)

df1.to_excel(writer,sheet_name='Result',startrow=1 , startcol=0)
worksheet.write_string(df1.shape[0] + 4, 0, df2.name)
df2.to_excel(writer,sheet_name='Result',startrow=df1.shape[0] + 5, startcol=0)

当时的想法可能是这些(或更好):

import xlwings as xw
df.to_excel(finalname,index=False,header=False)
wb = xw.Book(finalname)

wb.sheets['yoursheet'].range('A').color = (169,169,169)

wb.sheets['sheet1'].range('A').api.Font.ColorIndex = 3

不知道如何塑造这些以适应 excel 代码。

请帮忙

【问题讨论】:

    标签: python excel pandas xlwings


    【解决方案1】:

    是的,您可以完全控制格式。 Pandas 为此使用了一个名为 XlsxWriter 的包。 https://xlsxwriter.readthedocs.io/working_with_pandas.html

    【讨论】:

    • 曾经使用 Xlsxwriter,但我发现它在这里有限制。无法堆叠数据框并保持其格式/样式。除了 Xlsxwriter 还有其他方法吗?
    猜你喜欢
    • 2021-03-01
    • 2020-10-31
    • 1970-01-01
    • 2021-01-24
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多