繁体   English   中英

在 xlsxwriter 中传递一个变量用于熊猫条件格式

[英]Pass a variable in xlsxwriter for pandas conditional formatting

我在数据帧中运行for循环,我想在输出报告中的行匹配某些条件时突出显示该行。 但是,我的代码适用于硬编码值(即 10),但我想传递一个变量。 任何帮助表示赞赏。

df = pd.DataFrame({"ID": [10, 11, 12, 13, 14], 
"NAME": ['item1', 'item2', 'item3', 'item4', 'item5']})

number_rows = len(df.index) + 1
writer = pd.ExcelWriter("Report.xlsx",engine='xlsxwriter')

df.to_excel(writer, sheet_name='Sheet1', index=False)

workbook = writer.book
worksheet = writer.sheets['Sheet1']


a = df['ID'][1]

format1 = workbook.add_format({'bg_color': '#FFC7CE',
                              'font_color': '#9C0006'})

worksheet.conditional_format("$A$1:$B$%d" % (number_rows),
                             {"type": "formula",
                              "criteria": '=INDIRECT("A"&ROW())= 10',  # I want to pass variable (a) instead of '10'
                              "format": format1
                             }
)
workbook.close()

找到了一种使用“值”属性添加变量的方法

df = pd.DataFrame({"ID": [10, 11, 12, 13, 14], 
"Status": ['item1', 'item2', 'item3', 'item4', 'item5']})

number_rows = len(df.index) + 1
writer = pd.ExcelWriter("Report.xlsx",engine='xlsxwriter')

df.to_excel(writer, sheet_name='Sheet1', index=False)

workbook = writer.book
worksheet = writer.sheets['Sheet1']



format1 = workbook.add_format({'bg_color': '#FFC7CE',
                              'font_color': '#9C0006'})

worksheet.conditional_format("$A$1:$B$%d" % (number_rows),
                             {"type": "cell",
                              'criteria': '=',
                              "value": a,           #here a is variable now
                              "format": format1
                             }
)
workbook.close()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM