如何使用Pandas导出突出显示的结果?

2024-04-20 15:18:04 发布

您现在位置:Python中文网/ 问答频道 /正文

在比较两个数据帧时,我在一个单独的列中突出显示并附加结果(在我的示例中,它是C列)。使用apply,您可以看到输出,但无法直接导出突出显示的结果。我使用xlsxwriter作为解决方法。是否有一种直接的方法可以使用pandas以excel或任何其他标准格式导出突出显示的结果

编辑:我在答案中添加了我的代码以供参考

 A    B      C
120  ABC12   Exist
125  BCD45   Doesn’t Exist
456  YKR70   Exist
127  UKB67   Doesn’t Exist


Tags: 数据方法答案代码编辑示例pandas标准
1条回答
网友
1楼 · 发布于 2024-04-20 15:18:04

这是工作代码

import numpy as np
import pandas as pd


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

a1=[10,12,14]
stat= ['item1', 'item2']

df['C'] =df.apply(lambda x: ''.join([str(a)+' was highlighted' for a in a1 if x.ID==a]) or ''.join([sta +' was highlighted' for sta in stat if x.Status==sta]),axis=1)
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'})



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


for b in stat:
    worksheet.conditional_format("$B$1:$B$%d" % (number_rows),
                                     {"type": "text",
                                      'criteria': 'containing',
                                      "value": b,
                                      "format": format2
                                     })

workbook.close()

相关问题 更多 >