xlsxwriter中条件匹配时添加列

问题描述 投票:0回答:1

我的代码当前符合条件时突出显示单元格。当列A或B中的单元格突出显示时,我需要帮助弄清楚如何在C列中添加注释。我是python和xlsxwriter的新手。任何帮助将不胜感激。

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'})

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

a1=12

worksheet.conditional_format("$A$1:$A$%d" % (number_rows),
                                 {"type": "cell",
                                  'criteria': '=',
                                  "value": a1,
                                  "format": format1
                                 })

stat= 'item2'
worksheet.conditional_format("$B$1:$B$%d" % (number_rows),
                                 {"type": "text",
                                  'criteria': 'containing',
                                  "value": stat,
                                  "format": format2
                                 })
workbook.close()

我想要的输出

    A   B        C
    10  item1     
    11  item2    item2 was highlighted
    12  item3    12 was highlighted
    13  item4
    14  item5

python pandas xlsxwriter
1个回答
0
投票

您可以这样操作,

a1=12
stat= 'item2'
df['C'] = np.select([df.ID==a1 , df.Status==stat],[str(a1)+' was highlighted', stat+' was highlighted'],default='')
df

输出

    ID  Status  C
0   10  item1   
1   11  item2   item2 was highlighted
2   12  item3   12 was highlighted
3   13  item4   
4   14  item5   
© www.soinside.com 2019 - 2024. All rights reserved.